可变数据成员 (C++)

此关键字只能应用于类的非静态、非常量和非参考数据成员。 如果某个数据成员被声明为 mutable,则从 const 成员函数为此数据成员赋值是合法的。

语法

mutable member-variable-declaration;

备注

例如,以下代码在编译时不会出错,因为 m_accessCount 已声明为 mutable,因此可以由 GetFlag 修改,即使 GetFlag 是常量成员函数也是如此。

// mutable.cpp
class X
{
public:
    bool GetFlag() const
    {
        m_accessCount++;
        return m_flag;
    }
private:
    bool m_flag;
    mutable int m_accessCount;
};

另请参阅

关键字