Const Correctness / C vs. C++ Differences
error: passing xxx as ‘this’ argument of xxx discards qualifiers
you’re calling a non-const member function on const object which is not allowed because non-const member functions make NO PROMISE not to modify the object
What is the meaning of ‘const’ at the end of a member function declaration?
declaring a const instance of a class
error: passing xxx as 'this' argument of xxx discards qualifiers error: passing ‘const Foo’ as ‘this’ argument of ‘void Foo::bar()’ discards qualifiers [-fpermissive]
class Foo {
public:
Foo() {};
virtual ~Foo() {};
// must be const:
// void bar() const {};
void bar() {};
};
int
main(int argc, char *argv[])
{
const Foo foo;
foo.bar();
return 0;
}