Kopierkonstruktor/Zuweisungsoperator im Codeausschnitt

yuro

Erfahrenes Mitglied
Hallo :-)

und zwar hab ich hier folgenden Codeausschnitt:

code.jpg

Jetzt wollt ich mal wissen ob das richtig ist, was ich mir aufgeschrieben habe.

Ich soll schauen in welchen Zeilen der Kopierkonstruktor und der Zuweisungsoperator aufgerufen wird.

Also:

Zeile 1: Kopierkonstruktor wegen lokaler Kopie CBuch a,CBuch b

Zeile 17: Kopierkonstruktor weil Instanziierung vor Zuweisung

danach Zeile 17: Zuweisungsoperator


Stimmt das soweit?
 
hmmm also bei ner anderen aufgabe war die lösung genau wie bei zeile 1 das es kopierkonstruktor ist.

und der Destruktor wäre dann Zeile 6,33 aber warum nicht 13?
 
hmmm also bei ner anderen aufgabe war die lösung genau wie bei zeile 1 das es kopierkonstruktor ist.
Da ich nicht weiß, was der Standard dazu zu sagen hat, kann ich nicht mit endgültiger Sicherheit sagen, ob das falsch ist. Fakt ist jedoch, dass ich mindestens einen Compiler kenne (MSVC), der den Kopierkonstruktor an der Stelle des Funktionsaufrufes aufruft.

und der Destruktor wäre dann Zeile 6,33 aber warum nicht 13?
Weil die Parameter per Referenz übergeben werden. Damit wurden beim Aufruf der Funktion keine neuen Objekte angelegt, womit auch nichts abzuräumen ist.

Grüße,
Matthias
 
Ich danke dir vielmals für die genauen erklärungen :)

nur noch eine frage.. warum müssen kopierkonstruktor und zuweisungsoperator überladen werden?
 
Das klingt aber arg nach Hausaufgabe.

Kann man bei dem Codeausschnitt nicht sagen, weil man die Typen der Member nicht sieht.
 
Zurück