Operatori binari
Nella tabella seguente viene mostrato un elenco di operatori che possono essere sottoposti a overload.
operatori binari Redefinable
Operatore |
Nome |
---|---|
, |
Virgola |
!= |
Disuguaglianza |
% |
Modulo |
%= |
modulo/assegnazione |
& |
AND bit per bit |
&& |
AND logico |
&= |
AND/Assignment bit per bit |
* |
Moltiplicazione |
*= |
moltiplicazione/assegnazione |
+ |
Addizione |
+= |
Aggiungi/assegnazione |
– |
Sottrazione |
–= |
sottrazione/assegnazione |
- > |
Selezione dei membri |
- >* |
selezione di Puntatore a membro |
/ |
Divisione |
/= |
divisione/assegnazione |
< |
Minore di |
<< |
Spostamento a sinistra |
<<= |
Struttura/assegnazione di sinistra |
<= |
Minore o uguale a |
= |
Assegnazione |
== |
Uguaglianza |
> |
Maggiore di |
>= |
Maggiore o uguale a |
>> |
Spostamento a destra |
>>= |
Spostamento a destra/assegnazione |
^ |
OR esclusiva |
^= |
OR/assignment esclusivo |
| |
OR inclusivo bit per bit |
|= |
OR/assignment incluso bit per bit |
|| |
OR logico |
Per dichiarare una funzione di operatore binario come membro non static, è necessario dichiararlo nel form:
macerare-tipo operatoreop**(** arg )
dove macerare-tipo è il tipo restituito, op è uno degli operatori elencati nella tabella precedente e arg è un argomento di qualsiasi tipo.
Per dichiarare una funzione di operatore binario come funzione globale, è necessario dichiararlo nel form:
macerare-tipo operatoreop**(** arg1**,** arg2 )
dove macerare-tipo e op essere come descritto nelle funzioni dell'operatore membro e arg1 e arg2 sono gli argomenti.Almeno uno degli argomenti deve essere di tipo 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.