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类型的成员函数