Operadores unários de sobrecarga
Os operadores unários que podem ser sobrecarregados são os seguintes:
! (NOT lógico)
& (address-of)
+ (mais unário)
- (negação unária)
++ (incremento)
-- (decremento)
operadores de conversão
Os operadores de incremento e decremento de sufixo (++ e ––) são tratados separadamente em Incremento e decremento.
Os operadores de conversão também são abordados em um tópico separado; consulte Conversões.
As regras a seguir são verdadeiras para todos os outros operadores unários. Para declarar uma função de operador unário como um membro não estático, você deve declará-la na forma:
ret-type operatorop**()**
em que ret-type é o tipo de retorno e op é um dos operadores listados na tabela anterior.
Para declarar uma função de operador unário como uma função global, você deve declará-la na forma:
ret-type operatorop (arg )
em que ret-type e op são conforme descritos para funções de operador de membro e arg é um argumento do tipo de classe no qual operar.
Dica
Não há nenhuma restrição quanto aos tipos de retorno dos operadores unários.Por exemplo, faz sentido para NOT lógico (!) retornar um valor integral, mas isso não é imposto.