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

另请参阅

关键字