Überladen von Operatoren (C++)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Überladen von Operatorfunktionen (Übersicht) - Index


In C++ können Sie die Funktion der meisten Operatoren neu definieren, so dass sie bei der Anwendung auf Objekte einer bestimmten Klasse eine spezielle Wirkung haben. Wie allgemein bei überladenen C++-Funktionen unterscheidet der Compiler die verschiedenen Funktionen, indem der Kontext des Aufrufes festgehalten wird: die Anzahl und Typen der Argumente oder Operanden.

Alle Operatoren können überladen werden, außer den folgenden:

.   .*   ::   ?:

Die folgenden Präprozessor-Symbole können nicht überladen werden.

 #   ##

Die Operatoren =, [ ], ( ), und -> können nur als nichtstatische Elementfunktion überladen werden. Diese Operatoren können nicht von Typen enum überladen werden. Jeder Versuch, eine globale Version dieser Operatoren zu überladen, endet mit einem Compiler-Zeitfehler.

Das Schlüsselwort operator, gefolgt von dem Operatorsymbol, wird Operatorfunktionsname genannt; dieser kann wie ein normaler Funktionsname verwendet werden, wenn die neue (überladende) Funktion des Operators definiert wird.

Ein Funktionsoperator, der mit Argumenten aufgerufen wird, verhält sich wie ein Operator, der seine Operanden in einem Ausdruck verarbeitet. Eine Operatorfunktion kann weder die Anzahl der Argumente noch die Abarbeitungsreihenfolge und Rangfolge von Operatoren, wie sie für die normale Verwendung festgelegt sind, verändern.

Siehe auch