Referenz als Membervariable
-
Gibt es eine Möglichkeit in einer Klasse Referenzen als Member zu haben, die erst im Konstruktor mit ihrem Wert gefüllt werden?
Also etwa so:
class foo { foo(bar &y){this->x = y;} bar &x; }; class bar {..};
-
MeinSchatten schrieb:
Gibt es eine Möglichkeit in einer Klasse Referenzen als Member zu haben, die erst im Konstruktor mit ihrem Wert gefüllt werden?
Ja die gibt es. Du musst solche Member aber immer *explizit* über die Initialisierungsliste initialisieren.
class foo { foo(bar &y) : x(y) {} bar &x; }; class bar {..};
-
MeinSchatten schrieb:
Gibt es eine Möglichkeit in einer Klasse Referenzen als Member zu haben, die erst im Konstruktor mit ihrem Wert gefüllt werden?
Also etwa so:
class foo { foo(bar &y){this->x = y;} bar &x; }; class bar {..};
Ja, aber nicht im Rumpf. Das geht nur per Initialisierungsliste.
foo::foo(const bar& y):x(y) { }
-
Danke sehr!
-
Noch was:
Geht es auch, das man ein Objekt im Constructor erzeugt und dann einer Memberreferenz zuweist? Also so:
class foo { foo(){this->x = bar();}; bar &x; }; class bar {..};
-
Sorry mein Denkfehler, Referenz auf Temporäres Objekt, wie dumm von mir.
-
MeinSchatten schrieb:
Noch was:
Geht es auch, das man ein Objekt im Constructor erzeugt und dann einer Memberreferenz zuweist?
Das geht weder im Ctor noch sonst irgendwo. Eine nicht konstante Refernz kann nur an ein lvalue gebunden werden. Ein anonymes Objekt ist aber kein lvalue.
-
Ok. Du warst schneller