在C++语言中,mutable是使用较少的关键字,它的作用是:如果一个函数被const 修饰,那么它将无法修改其成员变量的,但是如果一个成员变量是被mutable修饰的话,则可以修改。
mutable 可以用来指出,即��成员函数或者类变量为const,其某个成员也可以被修改。反过来说,可变数据成员永远不能成为const,即使它是const对象的成员。
class A
{
public:
int x;
mutable int y;
A(int a, int b):x(a),y(b){}
};
int main()
{
const A a(0, 0); // const对象必须初始化
a.x = 1; // 错误
a.y = 2; // 正确,mutable修饰使得成员可被修改,即使对象a为const
return 0