C++ this-Zeiger
In C++ istthis. Der this-Zeiger ist ein spezieller Zeiger, der auf die Instanz des aktuellen Objekts zeigt.
In C++ kann jedes Objekt durchthis. Der this-Zeiger wird verwendet, um auf seine eigene Adresse zuzugreifen.
thisist ein verborgener Zeiger, der in den Memberfunktionen einer Klasse verwendet werden kann und dazu dienen kann, auf das aufrufende Objekt zu zeigen.
Wenn eine Memberfunktion eines Objekts aufgerufen wird, übergibt der Compiler implizit die Adresse dieses Objekts als this-Zeiger.
Friend-Funktionen haben keinenthis-Zeiger, weil ein Friend kein Mitglied der Klasse ist; nur Memberfunktionen besitzen ihn.this-Zeiger.
Das folgende Beispiel hilft, das Konzept des this-Zeigers besser zu verstehen:
Beispiel
Das Ausgabeergebnis der obigen Codeausführung ist:
Value: 42
Beispielanalyse:
-
Im obigen Beispiel haben wir eine Klasse namens MyClass definiert, die eine private Membervariable value besitzt.
-
Die Funktion setValue() in der Klasse wird verwendet, um den Wert von value festzulegen, während die Funktion printValue() verwendet wird, um den Wert von value auszugeben.
-
In der Funktion setValue() verwenden wir den this-Zeiger, um auf die Membervariable value des aktuellen Objekts zu verweisen, und weisen ihr den übergebenen Wert zu. Dies sagt dem Compiler eindeutig, dass wir auf die Membervariable des aktuellen Objekts zugreifen wollen und nicht auf einen Funktionsparameter oder eine lokale Variable.
In der Funktion printValue() verwenden wir ebenfalls den this-Zeiger, um auf die Membervariable value des aktuellen Objekts zu verweisen, und geben sie aus.
-
In der Funktion main() erstellen wir ein Objekt obj von MyClass, verwenden dann die Funktion setValue(), um value auf 42 zu setzen, und geben value über die Funktion printValue() aus.
-
Durch die Verwendung des this-Zeigers können wir in Memberfunktionen auf die Membervariablen des aktuellen Objekts zugreifen, selbst wenn sie dieselben Namen wie Funktionsparameter oder lokale Variablen haben. Dadurch werden Namenskonflikte vermieden und sichergestellt, dass wir auf die richtige Variable zugreifen.
Weitere Beispiele
Das folgende Beispiel wird verwendet, um die Volumina von Quadern zu vergleichen
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
调用构造函数。 调用构造函数。 Box2 的体积大于或等于 Box1Weitere Erweiterungen