Referenz auf vector<int<
-
Hallo,
habe ein Problem, kann aber die Antwort nicht finden.
Ich habe ein struct das so aussieht:struct Farbe { vector<int> kommunikationslinien; };In einem Testprogramm läuft das mit call-by-value (farbe.kommunikationslinien = einVector) so wie es soll. Um mir aber die Rumkopiererei zu sparen, möchte ich lieber ein call-by-reference machen. Aber
... vector<int>* kommunikationslinien;geht nicht.
Kann mir einer sagen wie das geht?Vielen Dank
ein C++-Newbie
-
Du hast einen Zeiger und keine Referenz, eine Referenz sieht folgendermaßen aus:
vector<int>& komm;Wichtig ist aber, dass durch das & nicht automatisch die Variable ab jetzt überall mit Call-By-Reference übergeben wird, sondern, dass du jetzt eine Referenz hast die erst mit einer anderen Variable initialisiert werden muss.
Du suchst eher nach soetwas:
struct Farbe { vector<int> komm; ... } ... void foo (Farbe& farbe) // Referenz wird übernommen (Call-By-Reference) { farbe.komm.push_back(5); // Bearbeitung des Original-Objektes } ... Farbe myFarbe; foo(myFarbe); // Hier wird dann nicht mit einer Kopie sondern direkt mit myFarbe gearbeitetMfG SideWinder
-
Ah schonmal Danke,
mit dem Pointer und der Referenz habe ich noch was Probleme.
Werde es mal so probieren.Schönen Abend noch