Das Schlüsselwort this
Nach oben zu Klassen - Index
Das Schlüsselwort this:
- Wird als verborgenes Argument in allen Aufrufen von nicht-statischen Member-Funktionen übergeben.
- Ist eine lokale Variable, die im Rumpf jeder statischen Member-Funktion zur Verfügung steht.
- Muss nicht deklariert werden und wird in Funktionsdefinitionen nur selten explizit angegeben.
- Wird innerhalb der Funktion implizit für Verweise auf Member verwendet.
Nicht-statische Member-Funktionen arbeiten mit dem Klassentypobjekt, mit dem sie aufgerufen werden. Wenn x beispielsweise ein Objekt der Klasse X ist und f() eine Member-Funktion von X, arbeitet der Funktionsaufruf x.f()
mit x.
Ebenso arbeitet der Funktionsaufruf xptr->f()
mit *xptr, wenn xptr ein Zeiger auf ein X-Objekt ist. Wie erkennt die Funktion f aber, mit welcher Instanz von X sie arbeitet? C++ stellt f mit einem Zeiger auf x bereit, this genannt.
Wenn beispielsweise x.f(y) aufgerufen wird, wobei y ein Member von X ist, wird this auf &x und y auf this->y
gesetzt, was gleichbedeutend mit x.y ist.