Reputation: 107
I don't understand why I get error with che const at the end of my method. The method print doesn't change any class member, right?
class Hello{
public:
int get_member() {return member_;};
void print() const {
cout<<get_member()<<endl;
};
private:
int member_;
};
The error message is: error passing "const Hello" as "this" argument of 'int Hello:: get_member()' discards qualifiers [-fpermissive]
Upvotes: 0
Views: 62
Reputation: 1516
int get_member() const {return member_;}
Should fix it. You can't call a non-const member from a const member as it breaks the 'promise' of const. If you could there would be no guarantee that the object isn't modified during the call.
Upvotes: 3