mutable 意为易变的;反复无常的。
在C++语言中,是命令语言——如果一个函数被const 修饰,那么它将无法修改其成员变量的,但是如果这个成员变量是被mutable修饰的话,则可以修改。
mutable 可以用来指出,即使结构或者类变量为const,其某个成员也可以被修改。
在c++的类中, 如果一个函数被const 修饰,那么它将无法修改其成员变量的,但是如果这个成员变量是被mutable修饰的话,则可以修改。例如:
struct data
{
char name[30];
mutable int accesses;
//.....
};
const data veep = { "david", 0, /*...*/ };
strcpy( veep.name, "Jimmy"); // not allowed
veep.accesses++; // allowed
veep 的 const 限定符禁止程序修改veep的成员,但 accesses 成员的 mutable 说明符表示 accesses 不受这种限制。