Spezielle Operatoren: Der Zuweisungsoperator (1/2)
Jede Klasse besitzt einen Default-Zuweisungsoperator, der komponentenweise
zuweist und das Objekt, dem der neue Wert zugewiesen worden ist, zurückliefert.
Dies bedeutet, daß ohne Überladen des Zuweisungsoperators bei einer Zuweisung
im Programmablauf stets komponentenweise zugewiesen wird. Letzteres wird in
den meisten einfacheren Klassen auch das sein, was man eigentlich von einer
Zuweisung erwartet.
Aufpassen muß man jedoch, sobald in der Klasse Zeiger als Komponenten
auftreten, da in diesem Fall eine komponentenweise Zuweisung meistens fehlerhaft
ist.
Beispiel
Man betrachte etwa eine Klasse string
:
struct string {
char* p;
// char-Pointer
int size;
// Größe des Arrays, auf das p zeigt
// Konstruktor; allociert den benötigten
Speicherplatz
string(int sz) {p = new char[size = sz]; }
// Destruktor; deallociert den Speicherplatz
~string() { delete[] p; }
};