This paper concludes:
A const object, a pointer to a const object, or a reference can only be used to invoke its const member function.
Example Description:
classa{ Public: voidMf1 () {cout<<"Function Call"<<Endl; } voidMF2 ()Const{cout<<"Const Function Call"<<Endl;}};intMain () {a A; A.MF1 (); //OKA.mf2 ();//OK ConstA B; B.MF1 (); //ErrorB.mf2 ();//OK return 0;}
Listen to the this pointer should know that two member functions of the declaration is actually this:
void mf1 (A *constthis); void mf2 (const A *constthis);
(Each member function has an additional, implicit parameter, this, which binds the member function to the class object that called the function)
It is also illegal to bind a generic reference to a const object because of C + + rules.
Const int 1024x768 ; int &refval = ival; // Error
So the proof.
Const member function