Referenz übergeben und speichern
-
Wie kann ich eine Referenz speichern?
Klasse3 { public: Objekt1* meinPointerAufObjekt1; Objekt2* meinPointerAufObjekt2; };Klasse3::initialisierung( Objekt1& ref1, Objekt2& ref2 ) { // Das geht ja leider nicht: this->meinPointerAufObjekt1 = ref1; this->meinPointerAufObjekt2 = ref2; }
-
Da eine Referenz ein synonym ist für das übergebene Objekt, musst du den Adressoperator verwenden um an die Adresse des Objekts zu gelangen. So sollte es klappen:
this->meinPointerAufObjekt1 = &ref1; this->meinPointerAufObjekt2 = &ref2;
-
Hallo,
Was genau möchtest du denn? Möchtest du, Eine Referenz an eine Referenz übergeben? Wenn ja, dann:struct foo { string& value; foo(string& v) : value(v) {} }; int main() { string s = "Hallo"; foo f(s); s += " C++!"; cout << "s = " << s << "\nf.value = " << f.value << endl; }Jede Änderung an v (bzw. das, was v referenziert... also s) betrifft jetzt auch value...
Falls du was anderes willst, erläutere es doch bitte ein wenig genauer

Gruß Caipi.
-
Wieso nicht direkt so:
class Test { public: Objekt1& meinPointerAufObjekt1; Objekt2& meinPointerAufObjekt2; Test(Objekt1& a,Objekt2& b):meinPointerAufObjekt1(a), meinPointerAufObjekt2(b) { } };Außerdem ist es ziemlich gefährlich was du da machst.
Denn wenn jetzt jemand außerhalt die Variable verändert die du an den C'tor übergeben hast, wird auch deine Variable in der Klasse geändert.D.h.: Du hast ein Handle von außerhalbt auf deine Private-Variablen

Edit:: Sind ja nicht private :p Trotzdem unsauben
