Sobrecargar operadores unarios

Los operadores unarios generan un resultado desde 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 del operador unario

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 de la resolución de sobrecargas para determinar qué función se va a usar, si se usa alguna.

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 los formularios de prefijo y postfijo de ++ y --, consulte Sobrecarga de operadores de incremento y decremento.

Nota:

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

Consulte también

Sobrecarga de operadores