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