C++のmutableキーワードの役割は何ですか?

C++のmutableキーワードは、クラスのメンバー変数を修飾するために使用されます。 mutableキーワードは、他のメンバー変数は変更できないconstメンバ関数内で、そのメンバー変数を変更することを可能にします。

constメンバ関数は、オブジェクトの状態に影響を与えないものとみなされるため、通常はクラスのメンバ変数の変更が禁止されています。しかし、キャッシュ値など、constメンバ関数内から値を変更する必要があるメンバ変数もあります。そのような場合、mutableキーワードでそのメンバ変数を修飾することで、constメンバ関数内での変更が可能になります。

例のコードを以下に示します

class Example {
public:
    int getValue() const {
        // 在const成员函数中修改mutable变量
        counter++;
        return value;
    }

private:
    int value;
    mutable int counter; // 使用mutable关键字修饰
};

上部のコードでは、counterはmutableとしてマークされているため、const member function getValue()内で変更が可能です。一方で、valueはmutableとしてマークされていないため、const member function内では変更できません。

bannerAds