Membres de données mutables (C++)
Cette fonctionnalité ne peut être appliquée qu’aux membres de données non statiques, non constants et non référencés d’une classe. Si un membre de données est déclaré mutable
, il est légal d’attribuer une valeur à ce membre de données à partir d’une fonction membre const
.
Syntaxe
mutable member-variable-declaration;
Notes
Par exemple, le code suivant sera compilé sans erreur parce que m_accessCount
a été déclaré comme étant mutable
, et peut donc être modifié par GetFlag
même si GetFlag
est une fonction membre constante.
// mutable.cpp
class X
{
public:
bool GetFlag() const
{
m_accessCount++;
return m_flag;
}
private:
bool m_flag;
mutable int m_accessCount;
};