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