常量对象:使用
const 修饰的对象,
类名 const 对象名;或const 类名 对象名;
(如
const CTest tst; CTest const tst;
) 常量对象
不能调用普通的成员函数,只能调用常函数
。这里面涉及到了 this指针的安全级别升级还是降级的操作。
常量对象调用普通函数
CTest *const this = &const CTest
,这是一个安全级别降级的非法的操作,而普通的对象调用常函数
const CTest* const this = &CTest
这是一个安全级别升级的合法操作。
如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加上const关键字。
class demo
{
private:
int value;
public:
void setvalue(){}
};
const demo obj; //常量对象
总结:
常对象只能调用常成员函数,不能调用非常成员函数。
可以访问成员属性,但是不能修改成员属性。