Operadores binários
A tabela a seguir mostra uma lista de operadores que podem ser sobrecarregados.
Operadores binários redefiníveis
Operador |
Nome |
---|---|
, |
Vírgula |
!= |
Desigualdade |
% |
Módulo |
%= |
Módulo/atribuição |
& |
AND bit a bit |
&& |
AND lógico |
&= |
Atribuição AND bit a bit |
* |
Multiplicação |
*= |
Atribuição/multiplicação |
+ |
Adição |
+= |
Atribuição/adição |
– |
Subtração |
–= |
Subtração/atribuição |
–> |
Seleção de membro |
–>* |
Seleção de ponteiro para membro |
/ |
Divisão |
/= |
Divisão/atribuição |
< |
Menor que |
<< |
Deslocamento para a esquerda |
<<= |
Deslocamento para a esquerda/atribuição |
<= |
Menor ou igual a |
= |
Atribuição |
== |
Igualdade |
> |
Maior que |
>= |
Maior ou igual a |
>> |
Deslocamento para a direita |
>>= |
Deslocamento para direita/atribuição |
^ |
OR exclusivo |
^= |
Atribuição OR exclusivo |
| |
OR inclusivo bit a bit |
|= |
OR inclusivo bit a bit/atribuição |
|| |
OR lógico |
Para declarar uma função de operador binário como um membro não estático, você deve declará-la na forma:
ret-type operatorop**(** arg )
onde ret-type é o tipo de retorno, op é um dos operadores listados na tabela anterior e arg é um argumento de qualquer tipo.
Para declarar uma função de operador binário como uma função global, você deve declará-la na forma:
ret-type operatorop**(** arg1**,** arg2 )
onde ret-type e op são descritos para as funções do operador do membro e arg1 e arg2 são argumentos. Ao menos um dos argumentos deve ser do tipo da classe.
Dica
Não há nenhuma restrição quanto aos tipos de retorno dos operadores binários; no entanto, a maioria dos operadores binários definidos pelo usuário retornam um tipo de classe ou uma referência a um tipo de classe.