this指针与const成员函数

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

原文地址:https://www.cnblogs.com/xzxl/p/8639426.html