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;
};

Voir aussi

Mots clés