可变数据成员 (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;
};

int main()
{
}

请参见

参考

C++ 关键字