Mutable Data Members (C++)
The latest version of this topic can be found at Mutable Data Members (C++).
This keyword can only be applied to non-static and non-const data members of a class. If a data member is declared mutable
, then it is legal to assign a value to this data member from a const member function.
Syntax
mutable member-variable-declaration;
Remarks
For example, the following code will compile without error because m_accessCount
has been declared to be mutable
, and therefore can be modified by GetFlag
even though GetFlag
is a const member function.
// mutable.cpp
class X
{
public:
bool GetFlag() const
{
m_accessCount++;
return m_flag;
}
private:
bool m_flag;
mutable int m_accessCount;
};
int main()
{
}