dieser Zeiger
In einer Klasse gibt es einen sehr versteckten speziellen Zeiger, nämlich den this-Zeiger !
Warum ist es etwas Besonderes? Denn solange eine Klasse definiert ist, definiert das System einen Zeiger mit dem Namen this vor, der auf das aktuelle Objekt zeigt. Obwohl wir es nicht sehen können, können wir es nutzen.
Schauen wir uns zum Beispiel eine Mitgliedsfunktion einer Uhrenklasse an, den Code, der zum Festlegen des Zeitwerts verwendet wird:
intClock::SetTime(inth,intm,ints){H=h;M=m;S=s;}
Sie können sehen, dass die Mitgliedsvariablen der Clock-Klasse selbst H, M und S sind. Ihnen müssen Werte von außen zugewiesen werden. Um sie zu unterscheiden, definieren wir die formalen Parameter in Kleinbuchstaben. Wenn wir also wissen, dass es so etwas gibt, können wir so schreiben:
intClock::SetTime(inth,intm,ints){this->H=h;this->M=m;this->S=s;}//Es kann auch geschrieben werden als: intClock::SetTime(inth, intm,ints ){(*this).H=h;(*this).M=m;(*this).S=s;}
Es ist ersichtlich, dass die beiden oben genannten Schreibmethoden den versteckten Zeiger this im Objekt verwenden, der eindeutig Mitglied dieser Klasse sein kann, wodurch dieses Objekt klar von externen Variablen unterschieden wird. Wenn ein Objekt seine Mitgliedsfunktion aufruft, gibt es tatsächlich nur einen Code für die Mitgliedsfunktion, selbst wenn das Programm mehrere Objekte dieser Klasse enthält. Um zu unterscheiden, welches Objekt die Mitgliedsfunktion aufruft, muss der Compiler dies tun konvertiert Es wird in Form einer this->member-Funktion verwendet.