In welchen Situationen wird der C ++ - Kopierkonstruktor aufgerufen?

Ich kenne die folgenden Situationen in c ++, in denen der Kopierkonstruktor aufgerufen würde:

Wenn einem vorhandenen Objekt ein Objekt seiner eigenen Klasse zugewiesen wird

MyClass A,B;
A = new MyClass();
B=A; //copy constructor called 

Wenn eine Funktion als Argument ein als Wert übergebenes Objekt einer Klasse erhält

void foo(MyClass a);
foo(a); //copy constructor invoked

Wenn eine Funktion (nach Wert) ein Objekt der Klasse zurückgibt

MyClass foo ()
   {
      MyClass temp;
      ....
      return temp; //copy constructor called
   } 

Bitte zögern Sie nicht, meine Fehler zu korrigieren. Ich bin aber eher neugierig, ob es andere Situationen gibt, in denen der Kopierkonstruktor aufgerufen wird.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage