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 |
% |
MODULUS |
%= |
MODULUS/atribuição. |
& |
AND bit a bit |
& & |
E lógico |
& = |
AND bit a bit / atribuição |
* |
Multiplicação |
*= |
Atribuição de multiplicação / |
+ |
Adição |
+= |
Atribuição de adição / |
– |
Subtração |
–= |
Atribuição de subtração / |
– > |
Seleção de membro |
– > * |
Seleção de ponteiro para membros |
/ |
Divisão |
/= |
Divisão/atribuição. |
< |
Menor que |
<< |
Shift esquerda |
<< = |
Shift esquerda/atribuição |
< = |
Menor ou igual a |
= |
Atribuição |
== |
Igualdade |
> |
Maior que |
> = |
Maior ou igual a |
>> |
Shift direita |
>> = |
Shift direita/atribuição |
^ |
OU exclusivo |
^= |
OU exclusivo / atribuição |
| |
BITWISE OR inclusiva |
|= |
BITWISE OR inclusive / atribuição |
|| |
OR lógico |
Para declarar uma função de operador binário como um membro não estático, você precisa declará-la no formulário:
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ê precisa declará-la no formulário:
ret-type operatorop**(** arg1**,** arg2 )
onde ret-type e op estão descritas para funções de operador de membro e arg1 e arg2 são argumentos.Pelo menos um dos argumentos deve ser do tipo de classe.
Observação |
---|
Não há nenhuma restrição de 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. |