const al final de un método que da error
Pregunta
No entiendo por qué recibo un error con Che Const al final de mi método.El método de impresión no cambia ningún miembro de clase, ¿verdad?
class Hello{
public:
int get_member() {return member_;};
void print() const {
cout<<get_member()<<endl;
};
private:
int member_;
};
El mensaje de error es: Error al pasar "const hola" como "este" argumento de 'int hola :: get_member ()' descartes calificadores [-fpermissive]
Solución
int get_member() const {return member_;}
debería arreglarlo.No puede llamar a un miembro no const de un miembro const, ya que rompe la "promesa" de Const.Si pudiera, no habría garantía de que el objeto no se modifique durante la llamada.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow