可变存储类说明符(仅限 C++)

mutable 存储类说明符仅用于类数据成员,以使其可修改,即使该成员是声明为 const的对象的一部分也是如此。 不能将可变说明符与声明为 staticconst的名称或引用成员一起使用。

在以下示例中:

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