Die C++-Sprache definiert den Pfeiloperator (->
) als Synonym für die Dereferenzierung eines Zeigers und anschließende Verwendung des .
-Operators an dieser Adresse.
Zum Beispiel:
Wenn Sie ein Objekt, anObject
, und einen Zeiger, aPointer
, haben:
SomeClass anObject = new SomeClass();
SomeClass *aPointer = &anObject;
Um eine der Methoden des Objekts verwenden zu können, dereferenzieren Sie den Zeiger und führen einen Methodenaufruf an dieser Adresse durch:
(*aPointer).methode();
Was mit dem Pfeiloperator geschrieben werden könnte:
aPointer->methode();
Der Hauptgrund für das Vorhandensein des Pfeiloperators besteht darin, dass er das Tippen einer sehr häufigen Aufgabe verkürzt und es auch leicht ist, die Klammern um die Dereferenzierung des Zeigers zu vergessen. Wenn Sie die Klammern vergessen, wird der .-Operator stärker als der *-Operator gebunden und führt unser Beispiel wie folgt aus:
*(aPointer.methode()); // Nicht beabsichtigt!
Einige der anderen Antworten haben auch erwähnt, dass C++-Operatoren überladen werden können und dass dies nicht so häufig vorkommt.