C ++中的可变存储类

可变存储类说明符仅用于类数据成员,以使其可修改,即使该成员是声明为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已被声明为可变的。