ctor, cctor, eq, references und vieles mehr ??
-
Hallo,
manchmal denke ich hab's verstanden, aber dann....
Ich habe eine Klasse:class MyClass { public: MyClass (int a); MyClass(const MyClass& rhs); MyClass& operator=(const MyClass& rhs); }int main() { MyClass c1(99); //1. MyClass c2 = 99; //2. MyClass c4 = c1; //3. MyCalss c3 = MyClass(99); //4. }Was ich erwarte:
1. ctor mit 99 --> stimmt
2. ctor mit 99 --> stimmt
3. cctor-Aufruf --> stimmt
4. ctor-Aufruf mit 99 danach cctor Aufruf --> stimmt nicht es wird nur der Aufgerufen für das temporäre Objekt ???
-
Sorry...
Schreibfehler: bei 4. wird nur der ctor aufgerufen
-
Die (4) sollte nach meinem Verständnis auch nur ein normaler (expliziter) Konstruktoraufruf sein. Und notfalls ist der Compiler sowieso berechtigt, temporäre Objekte wegzuoptimieren.
-