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

Da der *=-Operator das Objekt, für das er aufgerufen wurde, verändert und im veränderten Zustand zurückliefern muß, benötigt man eine Möglichkeit, innerhalb der Elementfunktion auf das Objekt zuzugreifen; hier in der Form, daß man das Objekt als Rückgabewert einsetzen möchte.

Die Lösung des obigen Problems liegt in der Verwendung des sogenannten this-Zeigers. Jede Elementfunktion einer Klasse enthält einen Zeiger auf ihren Klassentyp mit dem Namen this. Im obigen Beispiel enthält die Operator-Elementfunktion einen this-Zeiger vom Typ complex*.
Der this-Zeiger enthält die Adresse des Klassenobjekts, über das die Elementfunktion aufgerufen wurde.

Das obige Beispiel hätte demnach folgendes Aussehen:

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

      return *this;  // Rückgabe des manipulierten Objekts 
  };

Auf den folgenden Seiten wollen wir uns noch ein wenig ausführlicher mit dem this-Zeiger auseinandersetzen.