Entiendo más la sobrecarga de operadores, con la excepción de los operadores de acceso miembro ->
, .*
, ->*
etc.
En particular, ¿qué se pasa a estas funciones de operador y qué se debe devolver?
¿Cómo sabe la función del operador (por ejemplo operator->(...)
) a qué miembro se hace referencia? Puede saber? ¿Es necesario saberlo?
Finalmente, ¿hay alguna consideración constante que deba tenerse en cuenta? Por ejemplo, cuando se sobrecarga algo así operator[]
, generalmente necesitará tanto una versión const como una no const. ¿Los operadores de acceso de miembros requieren versiones const y no const?
const
y no se requierenconst
versiones de , pero proporcionar ambas puede ser útil. operator->
->*
y .*
. De hecho, ¡ni siquiera los menciona! Siento que es muy raro que aparezcan en una pregunta frecuente, pero con gusto enlazaría esta pregunta desde la pregunta frecuente. ¡No cierre esto como un engaño de las preguntas frecuentes!