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
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
}
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 →