Compartir a través de


Sobrecarga de operadores unarios

Los operadores unarios generan un resultado de un único operando. Puede definir sobrecargas de un conjunto estándar de operadores unarios para trabajar en tipos definidos por el usuario.

Operadores unarios sobrecargables

Puede sobrecargar los siguientes operadores unarios en tipos definidos por el usuario:

Declaraciones de sobrecarga de operadores unarios

Puede declarar operadores unarios sobrecargados como funciones miembro no estáticas o como funciones no miembro. Las funciones miembro unarias sobrecargadas no toman ningún argumento porque operan implícitamente en this. Las funciones no miembro se declaran con un argumento. Cuando se declaran ambos formularios, el compilador sigue las reglas para la resolución de sobrecargas para determinar qué función se va a usar, si existe.

Las reglas siguientes se aplican a todos los operadores unarios de prefijo. Para declarar una función de operador unario como una función miembro no estática, use este formulario de declaración:

return-type operator op ();

En este formulario, return-type es el tipo de valor devuelto y op es uno de los operadores enumerados en la tabla anterior.

Para declarar una función de operador unario como una función no miembro, use este formulario de declaración:

return-type operator op ( class-type );

En este formulario, return-type es el tipo de valor devuelto, op es uno de los operadores enumerados en la tabla anterior y class-type es el tipo de clase del argumento en el que se va a operar.

Las formas de postfijo de ++ y -- toman un argumento adicional int para distinguirlos de los formularios de prefijo. Para obtener más información sobre las formas de prefijo y postfijo de ++ y --, vea Sobrecarga de operadores de incremento y decremento.

Nota:

No hay ninguna restricción en los tipos de valor devuelto de los operadores unarios. Por ejemplo, tiene sentido que NOT lógico (!) devuelva un bool valor, pero este comportamiento no se aplica.

Consulte también

Sobrecarga del operador