class Fred { public: void f() const; }; // ^^^^^--- this implies "fred.f()" won't change "fred"This means that the abstract (client-visible) state of the object isn't going to change (as opposed to promising that the "raw bits of the object's struct aren't going to change). C++ compilers aren't allowed to take the "bitwise" interpretation, since a non-const alias could exist which could modify the state of the object (gluing a "const" ptr to an object doesn't promise the object won't change; it promises only that the object won't change via that pointer).
"const" member functions are often called "inspectors." Non-" const" member functions are often called "mutators."