C++のmutableキー
1484 ワード
C++のmutableキー
C++では、mutableはconstの制限を突破するために設定されています.クラスのメンバー変数を修飾するために使用できます.mutableで修飾された変数は、const関数でもこの変数の値を変更できるように、常に可変状態になります.
たとえば次の例です.
Aという変数がconstタイプを宣言されたときでもA.vは変更できます.例えば次のコードです.
相対的にmutableというキーワードはあまり使われていません.これらを理解すれば十分です.
C++では、mutableはconstの制限を突破するために設定されています.クラスのメンバー変数を修飾するために使用できます.mutableで修飾された変数は、const関数でもこの変数の値を変更できるように、常に可変状態になります.
たとえば次の例です.
#include
using namespace std;
class Test
{
public:
Test();
int value() const;
private:
mutable int v;
};
Test::Test()
{
v = 1;
}
int Test::value() const
{
v++;
return v;
}
int main()
{
Test A;
cout << A.value() << endl;
return 0;
}
Aという変数がconstタイプを宣言されたときでもA.vは変更できます.例えば次のコードです.
int main()
{
const Test A;
cout << A.value() << endl;
return 0;
}
相対的にmutableというキーワードはあまり使われていません.これらを理解すれば十分です.