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]

Foi útil?

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
scroll top