Binäre Operatoren
Die folgende Tabelle zeigt eine Liste von Operatoren, die überladen werden können.
Neu definierbare binäre Operatoren
Operator |
Name |
---|---|
, |
Komma |
!= |
Ungleichheit |
% |
Modulooperator |
%= |
Modulo/Zuweisung |
& |
Bitweises AND |
&& |
Logisches AND |
&= |
Bitweises AND/Zuweisung |
* |
Multiplikation |
*= |
Multiplikation/Zuweisung |
+ |
Addition |
+= |
Addition/Zuweisung |
– |
Subtraktion |
–= |
Subtraktion/Zuweisung |
–> |
Memberauswahl |
–>* |
Pointer-to-member-Auswahl |
/ |
Division |
/= |
Division/Zuweisung |
< |
Kleiner als |
<< |
Nach links verschieben |
<<= |
Nach links verschieben/Zuweisung |
<= |
Kleiner oder gleich |
= |
Zuweisung |
== |
Gleichheit |
> |
Größer als |
>= |
Größer oder gleich |
>> |
Nach rechts verschieben |
>>= |
Nach rechts verschieben/Zuweisung |
^ |
Exklusives OR |
^= |
Exklusives OR/Zuweisung |
| |
Bitweises inklusives OR |
|= |
Bitweises inklusives OR/Zuweisung |
|| |
Logisches OR |
Um eine binäre Operatorfunktion als nicht statischen Member zu deklarieren, muss sie im folgenden Format deklariert werden:
ret-type operatorop**(** arg )
Dabei ist ret-type der Rückgabetyp, op ist einer der in der vorhergehenden Tabelle aufgelisteten Operatoren und arg ist ein Argument eines beliebigen Typs.
Um eine binäre Operatorfunktion als globale Funktion zu deklarieren, muss sie im folgenden Format deklariert werden:
ret-type operatorop**(** arg1**,** arg2 )
Dabei entsprechen ret-type und op der Beschreibung für Memberoperatorfunktionen und arg1 sowie arg2 sind Argumente. Mindestens eines der Argumente muss ein Klassentyp sein.
Hinweis
Es gibt keine Einschränkung für die Rückgabetypen der binären Operatoren. Die meisten benutzerdefinierten binären Operatoren geben jedoch entweder einen Klassentyp oder einen Verweis auf einen Klassentyp zurück.