const修饰成员函数

class CTest
{
public:
	void cFunc() const;  //不可改变对象的成员变量
	void Func();
};


void CTest::cFunc() const
{


}
void CTest::Func()
{


}


const CTest ctest;
const CTest * pctest=new CTest;


ctest.cFunc();
	//error C2662: “CTest::Func”: 不能将“this”指针从“const CTest”转换为“CTest &”
//	ctest.Func();




	pctest->cFunc();
	// error C2662: “CTest::Func”: 不能将“this”指针从“const CTest”转换为“CTest &”
//	pctest->Func();


const成员函数不允许修改它所在对象的任何一个数据成员,const成员函数能够访问对象的const成员,而其他成员函数则不可以。

对于const类对象/指针/引用可以调用const成员函数,但是不可以调用非const类型的成员函数


你可能感兴趣的:(const修饰成员函数)