文章目录
const关键字
Constant Object
const作为修饰对象的关键字时,该对象对应的内存内容不能够被修改,并且在定义时就应该初始化一个值。
如果对象属于类(或结构),则只有该类中受到 const 修饰的方法 (constant member functions) 可以被该对象调用。
Constant Member Function
const关键字用在类的成员函数时,是一种保护性的说明,表明该函数不能够修改本对象内的数据(也即该函数仅仅是向外展示对象内数据的窗口)。
编译器会对函数是否修改对象内数据进行检查,并在违反限制时做出报告。
class Class{
private:
int val;
public:
int get_value() const;
}
/* Just return the val without modifying any memory of the object. */
Class::get_value() const
{
return val;
}
Exception: mutable member
mutable
关键字说明了一个变量是可以被修改的,编译器也会做出针对修改内存相应的优化。同时,当一个类的成员变量使用了 mutable
进行修饰时,const类型的成员函数便可以例外地对该成