unarios sobrecarga restricciones relacionales que poo operadores operador insercion funciones flujo esta compuesta acerca c++ operator-overloading overloading address-operator

restricciones - sobrecarga de operadores relacionales en c++



¿Por qué alguien querría sobrecargar el operador &(dirección de)? (4)

Porque son malvados y quieren que sufras.

¿O supongo que si estás utilizando objetos proxy? Supongo que es posible que desee devolver un puntero al objeto administrado en lugar del contenedor, aunque prefiero hacerlo con una función getter. De lo contrario, deberías recordar usar cosas como boost::addressof .

Posible duplicado:
¿Qué razones legítimas existen para sobrecargar al operador unario?

Acabo de leer esta pregunta , y no puedo evitar preguntarme:

¿Por qué alguien querría sobrecargar el operador & ("dirección de")?

some_class* operator&() const { return address_of_object; }

¿Hay algún caso de uso legítimo?


Sí, para la depuración (si desea rastrear cualquier acceso o referencia, puede poner una línea de registro en cualquier llamada a & , * o -> ).


Si está tratando con cualquier tipo de objetos de envoltura, es posible que desee o necesite reenviar de forma transparente el acceso al envoltorio al objeto contenido. En ese caso, no puede devolver un puntero a la envoltura, pero necesita sobrecargar la dirección del operador para devolver un puntero al objeto contenido.


Ya he visto esto en código productivo.

Pero allí, se devolvió una representación binaria del contenido de una struct , no solo 0 .

Y el caso de uso era simple: operaciones binarias.