Der implizite Zeiger this: Einführung und Motivation (1/2)

Zugegeben: bisher haben wir keine Zeiger kennengelernt, dies wird erst im Kapitel 17 nachgeholt.
An dieser Stelle kommen wir aber dennoch nicht um die Erklärung eines speziellen Zeigers herum, dem impliziten this-Zeiger. Nun kennen wir den Begriff des Zeigers noch nicht: hinter einem Zeiger verbirgt sich eine spezielle Variable, deren Wert der Adresse eines Objektes im Speicher entspricht. Mit Hilfe eines Zeigers kann man auf ein Objekt indirekt zugreifen.
Mehr wollen wir an dieser Stelle über Zeiger gar nicht verraten; merken wollen wir uns nur, daß man den this-Zeiger mit *this ansprechen kann.

Wozu brauche ich den this-Zeiger?

Die Problematik, die uns direkt auf die Forderung nach einem neuen Hilfsmittel bzw. Schlüsselwort führt, sei anhand eines einfachen Beispiels verdeutlicht:

Wenn man für ein bestimmtes Objekt einer Klasse eine Elementfunktion aufruft, so benötigt man innerhalb dieser Elementfunktion häufig Zugriff auf das Objekt an sich, für das die Elementfunktion aufgerufen wurde.
Als Beispiel betrachten wir für die Klasse complex die Operatorfunktion zum Operator *= :

  complex complex::operator*=(double d)
  {
      re *= d;       // Realteil des Objekts mit d multiplizieren
      im *= d;       // Imaginärteil des Objekts mit d multiplizieren

      return ???;    // hier würde man gerne das manipulierte Objekt für das die
                     // Operatorfunktion aufgerufen wurde, zurückgeben
  };