C-Programmierung

Copy-Konstruktor

Standardwerte | | Deep Copy

Sei C eine Klasse, dann ist

C(const C &v);

der Prototyp des sog. Copy-Constructors der Klasse C.

Der Copy-Constructor wird aufgerufen, wenn eine Kopie eines Objektes angelegt wird:

  • bei der Initialisierung von Objekten
C v;
C c(v); // direct call of copy constructor
C c = v; // indirect call of copy constructor
  • bei der Zuweisung von Argumenten an lokale Parameter
void f1(C c);
void f2(const C &c);

C v;
f1(v);
f2(v);

void f1(C c)
{
   // in this context c is a component-wise copy of v
}

void f2(const C &c)
{
   // in this context c is a reference to v
}

Jede Klasse besitzt einen Standardkopierkonstruktor, auch wenn dieser nicht explizit vereinbart wurde.
Das Verhalten des Standardkopierkonstruktors ist die komponentenweise Zuweisung aller Elemente des Quellobjekts an das neue Zielobjekt.

Standardwerte | | Deep Copy

Options: