Tengo la sensación de que este es uno de esos conceptos que tendría que tener más claro pero se ve que no termino de entender algo, y como además es algo básico que se usa de continuo, pues me gustaría entenderlo de una vez.
El caso es que creo una función para leer un miembro privado de una clase, así:
Código C++:
Ver original
tipo& LeeDato() const { return dato; }
Pero el compilador me arroja este error:
error: invalid initialization of reference of type 'tipo&' from expression of type 'const tipo' return dato;
^
Yo entiendo que si retorno una referencia es para poder tener acceso a ella, y que puede haber un sinsentido si por un lado quiero acceder directamente a un miembro y por otro lado no quiero modificarlo, pero no entiendo el por qué de la prohibición.
O es que tal vez no entienda el sentido de una función que retorna una referencia.
Como siempre, gracias!