Operatori binari
Nella tabella seguente viene mostrato un elenco di operatori che possono essere sottoposti a overload.
Operatori binari ridefinibili
Operatore |
Nome |
---|---|
, |
Virgola |
!= |
Disuguaglianza |
% |
Modulo |
%= |
Modulo/assegnazione |
& |
AND bit per bit |
&& |
AND logico |
&= |
AND bit/assegnazione |
* |
Moltiplicazione |
*= |
Moltiplicazione/assegnazione |
+ |
Addizione |
+= |
Addizione/assegnazione |
– |
Sottrazione |
–= |
Sottrazione/assegnazione |
–> |
Selezione dei membri |
–>* |
Selezione puntatore a membro |
/ |
Divisione |
/= |
Divisione/assegnazione |
< |
Minore di |
<< |
Spostamento a sinistra |
<<= |
Spostamento a sinistra/assegnazione |
<= |
Minore o uguale a |
= |
Assegnazione |
== |
Uguaglianza |
> |
Maggiore di |
>= |
Maggiore o uguale a |
>> |
Spostamento a destra |
>>= |
Spostamento a destra/assegnazione |
^ |
OR esclusivo |
^= |
OR esclusivo/assegnazione |
| |
OR inclusivo bit per bit |
|= |
OR inclusivo bit/assegnazione |
|| |
OR logico |
Per dichiarare una funzione di un operatore binario come membro non statico, è necessario dichiararla nel seguente formato:
ret-type operatorop**(** arg )
dove ret-type è il tipo restituito, op è uno degli operatori elencati nella tabella precedente e arg è un argomento di qualsiasi tipo.
Per dichiarare una funzione di un operatore binario come funzione globale, è necessario dichiararla nel seguente formato:
ret-type operatorop**(** arg1**,** arg2 )
dove ret-type e op vengono così descritti per le funzioni dell'operatore membro e arg1 e arg2 sono argomenti. Almeno uno degli argomenti deve essere di tipo di classe.
Nota
Non c'è alcuna restrizione sui tipi restituiti degli operatori binari; tuttavia, la maggior parte degli operatori binari definiti dall'utente restituiscono un tipo di classe o un riferimento al tipo di classe.