ruft den Kopierkonstruktor in einem anderen Konstruktor auf

8
%Vor%

Ich bekomme eine leere Zeichenfolge in der Ausgabe. Was sagt der C ++ - Standard über ein solches Verhalten?

    
eXXXXXXXXXXX2 19.03.2012, 10:50
quelle

2 Antworten

4

Hier müssen mindestens zwei Probleme auftreten:

  • Sie versuchen, A mit einer Kopie von sich selbst zu initialisieren
  • Innerhalb des Konstruktors ist A noch nicht vollständig konstruiert, so dass Sie es nicht wirklich kopieren können

Ganz zu schweigen davon, dass new(this) an sich schon verdächtig ist.

    
Bo Persson 19.03.2012, 11:01
quelle
0

Sie rufen den Konstruktor von s zweimal nacheinander auf, ergo, das Verhalten ist nicht definiert (und höchstwahrscheinlich ist etwas Speicherleck vorhanden).

    
Alexandre C. 19.03.2012 12:16
quelle

Tags und Links