1、const关键字
const关键字可以用来修饰变量和成员函数。其修饰变量则在此作用域下变量不可变,其修饰成员函数则说明此成员函数不会修改类的成员变量。
1.1 const修饰变量
1.2 const修饰成员函数
const修饰成员函数时需要将声明和定义全部加上const关键字。
当const修饰成员函数时,其含义是此成员函数不会更改类的成员变量,有以下两个层次:
- 不能在代码中显式对成员变量赋值。
- 其调用的成员函数也应该为const类型,以保证其不会改变类的成员变量。
2、mutable关键字
在1.2节中说道当const修饰成员函数时,此函数内部不能对成员变量赋值且其调用的函数也应该为const。但有时类中的变量并不全是保存的类的有效信息,有些变量是作为辅助来使用的,比如迭代变量等待。这时就可能在函数中更改这这些变量的值。只需要在声明时为变量加上mutable即可。
class A{
...
mutalbe int m_next;
};