mutable英音:'mju:təbl美音:'mjutəb!,形容词,意为易变的;反复无常的。在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的成员,但access成员的mutable说明符表示access不受这种限制。