mutable ストレージ・クラス指定子

C++ mutable ストレージ・クラス指定子は、クラス・データ・メンバーでのみ使用されます。 これは、そのメンバーが const として宣言されたオブジェクトの一部であったとしても、 変更可能にするために使用されます。mutable 指定子を、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 を許可しません。 なぜなら、var2const として宣言されているからです。 コンパイラーは、代入 var2.x = 345 は許可します。 なぜなら、A::x は、mutable として宣言されているからです。

関連参照

IBM Copyright 2003