1. 常量对象:如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字
eg.
class Demo{
private:
int value;
public:
void SetValue();
};
const Demo Obj;//常量对象
Obj变成一个常量对象,其值不能修改
2. 常量成员函数:在类的成员函数说明后面可以加const关键字,则该成员函数成为常量成员函数
常量成员函数在执行期间不应修改其所作用的对象。所以,常量成员函数不能修改成员变量的值(静态成员变量除外),也不能调用同类的非常量成员函数(静态成员函数除外)。
eg.
class Sample
{
public:
int value;
void GetValue() const;
void func() {};
Sample() {};
};
void Sample::GetValue() const
{
value = 0;//err.常量成员函数执行过程中不能修改作用的对象的值
func();//err.常量成员函数不能调用其他非常量成员函数
}
int main()
{
const Sample o;
o.value = 100;//err.常量对象不可被修改
o.func(