Überladen von unären Operatoren

Unäre Operatoren erzeugen ein Ergebnis aus einem einzelnen Operanden. Sie können Überladungen eines Standardsatzes von unären Operatoren definieren, um an benutzerdefinierten Typen zu arbeiten.

Überlastbare unäre Operatoren

Sie können die folgenden unären Operatoren für benutzerdefinierte Typen überladen:

Unäre Operatorüberladungsdeklarationen

Sie können überladene unäre Operatoren entweder als nicht statische Memberfunktionen oder als nicht statische Memberfunktionen deklarieren. Überladene unäre Memberfunktionen verwenden kein Argument, da sie implizit ausgeführt thiswerden. Nichtemberfunktionen werden mit einem Argument deklariert. Wenn beide Formulare deklariert werden, folgt der Compiler den Regeln für die Überladungsauflösung, um zu bestimmen, welche Funktion verwendet werden soll, falls vorhanden.

Die folgenden Regeln gelten für alle unären Präfixoperatoren. Verwenden Sie dieses Deklarationsformular, um eine unäre Operatorfunktion als nicht statische Memberfunktion zu deklarieren:

return-type operator op ();

In diesem Formular return-type ist der Rückgabetyp und op einer der Operatoren, die in der vorherigen Tabelle aufgeführt sind.

Verwenden Sie dieses Deklarationsformular, um eine unäre Operatorfunktion als nicht zu deklarieren:

return-type operator op ( class-type );

In diesem Formular return-type ist der Rückgabetyp einer der Operatoren, op die in der vorherigen Tabelle aufgeführt sind, und class-type ist der Klassentyp des Arguments, auf dem ausgeführt werden soll.

Die Postfixformen und ++-- verwenden ein zusätzliches int Argument, um sie von den Präfixformen zu unterscheiden. Weitere Informationen zu präfix- und postfix-Formularen ++ und ---Elementen finden Sie unter Increment and decrement operator overloading.

Hinweis

Es gibt keine Einschränkung für die Rückgabetypen der unären Operatoren. Beispielsweise ist es sinnvoll, dass logische NOT (!) einen bool Wert zurückgibt, aber dieses Verhalten wird nicht erzwungen.

Siehe auch

Operatorüberladung