可变存储类说明符(仅限 C++)
mutable 存储类说明符仅用于类数据成员,以使其可修改,即使该成员是声明为 const的对象的一部分也是如此。 不能将可变说明符与声明为 static 或 const的名称或引用成员一起使用。
在以下示例中:
class A
{
public:
A() : x(4), y(5) { };
mutable int x;
int y;
};
int main()
{
const A var2;
var2.x = 345;
// var2.y = 2345;
}
编译器不允许赋值 var2.y = 2345 ,因为已将 var2 声明为 const。 编译器将允许分配 var2.x
= 345 ,因为已将 A::x 声明为 mutable。