Initialisieren, Kopieren und Zuweisen
- Kopier-Konstruktor und Zuweisungsoperator
X::X(const X&);
const X& X::operator=(const X&);
- Verwendung von Objekten der Klasse X beispielsweise
in folgenden Zusammenhängen
X f(X x) // passing x by value, calling X::X(const X&)
{
return x; // returning x by value, calling X::X(const X&)
}
X x;
X y(x); // calling X::X(const X&)
X z = y; // calling X::X(const X&)
x = z; // calling const X& X::operator=(const X&)
Was ist, wenn
- ,,kein Kopierkonstruktor explizit definiert`` oder
- ,,kein Zuweisungs-Operator explizit definiert`` ?
- Compiler früherer Generationen (Cfront 2):
Standard-Operation ist jeweils bitweise Kopie; direkte Kopie des vom
Quellobjekt belegten Speicherbereiches auf den Speicherbereich des Zielobjektes
- neuere Compiler (ANSI-C++):
Standard-Operationen sind elementweise Kopieroperation bzw.
elementweise Zuweisung