Operatory binarne
Poniższa tabela zawiera wykaz operatorów, które mogą być przeciążone.
Operatory dwuargumentowe, które można definiować ponownie
Operator |
Nazwa |
---|---|
, |
Przecinek |
!= |
Nierówność |
% |
Moduły |
%= |
Moduł/przypisanie |
& |
Bitowe AND |
&& |
Logiczna AND |
&= |
Bitowy AND/przypisanie |
* |
Mnożenie |
*= |
Mnożenie/przypisanie |
+ |
Dodatkowy |
+= |
Dodawanie/przypisanie |
– |
Odejmowanie |
–= |
Odejmowanie/przypisanie |
–> |
Wybór elementu członkowskiego |
–>* |
Wybór wskaźnika do elementu członkowskiego |
/ |
Podział |
/= |
Dzielenie/przypisanie |
< |
Mniejszy niż |
<< |
Przesuniecie w lewo |
<<= |
Przesunięcie w lewo/przypisanie |
<= |
Mniejszy niż lub równy |
= |
Przypisanie |
== |
Równość |
> |
Większe niż |
>= |
Większy niż lub równy |
>> |
Przesunięcie w prawo |
>>= |
Przesunięcie w prawo/przypisanie |
^ |
Wyłączny or |
^= |
Wyłączny OR/przypisanie |
| |
Bitowe OR |
|= |
Bitowy niewykluczający OR/przypisanie |
|| |
Logiczne OR |
Aby zadeklarować funkcję operatora dwuargumentowego jako niestatyczny element członkowski, należy zadeklarować ją w postaci:
ret-type operatorop**(** arg )
gdzie ret-type jest typem zwracanym, op jest jednym z operatorów wymienionych w powyższej tabeli i arg jest argumentem dowolnego typu.
Aby zadeklarować funkcję operatora dwuargumentowego jako globalną funkcję, należy zadeklarować ją w postaci:
ret-type operatorop**(** arg1**,** arg2 )
gdzie ret-type i op są opisane jak dla funkcji operatora elementu członkowskiego i arg1 oraz arg2 są argumentami.Co najmniej jeden z argumentów musi być typu klasy.
[!UWAGA]
Nie ma żadnych ograniczeń na typ zwracany operatora dwuargumentowego; jednak większość operatorów dwuargumentowych zdefiniowanych przez użytkownika zwraca typ klasy lub odwołanie do typu klasy.