Konstruktor
-
Hi
Was ist der unterschied von
class Klasse { int a; public: Klasse(int new_a) { a = new_a; }; };
und
class Klasse { int a; public: Klasse(int new_a) : a(new_a) { }; };
?
-
keiner.
Aber mach malstring a;
Dann wird entweder
ein leerer String erzeugt(FA) und dann im was neues zugewiesen(FA)
oder
ein Sting mit was neuem konstuiert(FA).Also nur ein Funktionsaufruf (FA) statt zweien.
-
X.DarkForce.X schrieb:
Was ist der unterschied von
a = new_a;
und
: a(new_a)
?
Das erste ist eine Zuweisung, das zweite ist eine Initialisierung. Und der Unterschied zwischen Zuweisung und Initialisierung ist der, dass es bei einer Zuweisung schon ein Objekt geben muss und bei der Initialisierung es gerade erzeugt wird. Das ist zB dann wichtig, wenn 'a' von einem Klassentyp ist, der keinen Default-Konstruktor hat. Dann funktioniert Dein erster Ansatz nämlich nicht.
Das kann man in jedem C++ Buch nachlesen. Hast Du keins?
-
... und bei const.
-
... und bei Referenz
-
... und bei nicht zuweisbaren Objekten