this指针的类型为:classType *const // 即指向类类型非常量版本的常量指针
所以,我们不能把this绑定到一个常量对象上 ===> 不能在一个常量对象上调用普通的成员函数
class A { public: void print() { // ... } }; int main() { const A a; a.print(); // 非法 return 0; }
我们可以通过在成员函数的参数列表后面加上const关键字,来修改this指针的类型为const classType *const
因为this是指向常量的指针,所以常量成员函数不能改变调用它的对象的内容!!
const成员函数使得this指针指向常量,故任何对象都可以调用const成员函数。
注:只有在const成员函数中,this的类型才变为const classType *const