In einer C + +-Programm , wenn Sie erstellen Objekt der Klasse A X , können Sie dann erhalten Sie die Adresse von A mit der " this"-Zeiger . Die Adresse ist als eine lokale Variable in den nicht-statische Member-Funktionen von X , und seine Art ist const X * . Das "this" -Zeiger funktioniert, weil C + + erstellt Instanzen seiner Daten Mitglieder , und es hält eine Kopie von jedem Member-Funktion . Dinge, die Sie brauchen
erweiterte C + + Fähigkeiten
C + + Compiler mit IDE wie Visual Studio 2008
anzeigen Weitere Anweisungen
1
Verwenden Sie den "this" Zeiger auf entdecken den Standort einer Klasse -Instanz. Wie jede Zeiger , speichert er eine Adresse . Member-Funktion GetAddress () von C + +-Klasse X gibt die Adresse einer bestimmten Instanz der Klasse X: class X {
public:
X * const GetAddress ( ) const { return this
;
};
2
Zugang Mitgliederbereich Funktionen oder Member Daten innerhalb einer Klasse Member-Funktion mit dem Schlüsselwort "this" und dem "-> "-Operator . Das Beispiel unten ohne " this- > . " Arbeiten Aber wenn die Matrix -Bibliothek hat eine übergeordnete Klasse mit den gleichen Elementnamen , " this-> " macht deutlich, dass das, was aufgerufen wird, gehört zu der aktuellen Klasse , und nicht seine Eltern : class Matrix {
int rows, cols ;
public:
Matrix () : Reihen ( 0) , cols (0) {
this-> Init (); }
~ Matrix ();
int GetRows ( ) const {
zurückkehren this-> Reihen ; }
Private :
void init (); }
;
3
Studie eine Klasse, die das Überladen von Operatoren hat und studieren die Nutzung dieser. Der folgende Code -Snippet veranschaulicht , wie es neu definiert werden : const X * this-> operator () {
zurücksenden ; }