C++でのmutableの使い方は何ですか。
C++において、mutableキーワードはクラスのメンバ変数を修飾するために使用されます。その目的は定数メンバ関数内でそのメンバ変数の値を修正することを許可することです。
通常、constで宣言された定数のメンバー関数は、クラスのメンバー変数を変更することができません、なぜならそれらは読み取り専用操作として扱われるからです。しかし、時には、定数メンバー関数内で特定のメンバー変数の値を変更したい場合があり、そのような場合にはmutableキーワードを使用することができます。
mutableキーワードを使用した例が以下に示されています。
class Example {
private:
mutable int counter; // 可变的成员变量
public:
Example() : counter(0) {}
void increment() const {
counter++; // 在常量成员函数中修改成员变量的值
}
int getCounter() const {
return counter;
}
};
上の例では、counterはmutableとして宣言されているため、定数メンバ関数increment()内でその値を変更できます。そして、getCounter()も定数メンバ関数であり、counterの値を返すだけで変更はしません。
mutableキーワードの使用は慎重に行う必要があります。なぜなら、それは定数メンバー関数の読み取り専用性を壊すからです。特定のメンバー変数を定数メンバー関数で変更する必要がある場合にのみ、mutableを使用すべきです。