const no final de um método dando erro
Pergunta
Não entendo por que recebo um erro com che const no final do meu método.O método print não altera nenhum membro da classe, certo?
class Hello{
public:
int get_member() {return member_;};
void print() const {
cout<<get_member()<<endl;
};
private:
int member_;
};
A mensagem de erro é:erro ao passar "const Hello" como "este" argumento de 'int Hello::get_member()' descarta qualificadores [-fpermissive]
Solução
int get_member() const {return member_;}
Deveria consertar isso.Você não pode chamar um membro não-const de um membro const, pois isso quebra a 'promessa' de const.Se você pudesse, não haveria garantia de que o objeto não seja modificado durante a chamada.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow