Seltsame Zuweisung
-
Hi @all.
Erstmal der Code:
struct a { a() {x=40;y=80;} int x; int y; } struct b { b() { VarIn_b = Point();} // hä??? a VarIn_b }
Was ich nicht verstehe ist diese Zuweisung dort oben. Da wird der Konstruktor zugewiesen. Jedoch meine ich mich daran erinnern zu können, dass ein c-tor eigentlich gar nix zurück gibt...?!
Ich meine, dass VarIn_b die Variablen x und y enthält ist mir klar, weil es ja vom Typ struct a ist. Aber warum hat x z.B. die 40? Wie kann das gehen das man mit VarIn_b=Point() die Werte zuweist?? Hat das was damit zu tun das es einen class-Klassen sondern struct-Klassen sind? Oder warum geht das?thx!!!
cya
-
Jedoch meine ich mich daran erinnern zu können, dass ein c-tor eigentlich gar nix zurück gibt...?!
Ein Ctor hat zwar keinen expliziten Rückgabewert, nichtsdestotrotz ist der Ergebnis des Aufrufs ein Objekt der Klasse zu dem der Ctor gehört.
Point() erzeugt ein anonymes Objekt welches dann über den Zuweisungsoperator an VarIn_b zugewiesen wird.
-
Point() erzeugt ein Objekt?? Ist das eine Konstruktor-Ausnahme? Also kann man mit dem Aufruf des Konstruktors ein Objekt erzeugen und dann irgendwo zuweisen??
-
Nein, es ist keine Ausnahme, Sinn des Konstruktors ist es ein Objekt zu erstellen.