Änderbare Datenmember (C++)

Dieses Schlüsselwort kann nur auf nicht-statische, nicht-konstante und nicht-referenzierte Datenmitglieder einer Klasse angewendet werden. Wenn ein Datenelement als mutable deklariert ist, dann ist es legal, diesem Datenelement aus einer const-Mitgliedsfunktion einen Wert zuzuweisen.

Syntax

mutable member-variable-declaration;

Hinweise

Der folgende Code wird beispielsweise ohne Fehler kompiliert, da m_accessCount als mutable deklariert wurde und daher von GetFlag geändert werden kann, obwohl GetFlag eine const-Mitgliedsfunktion ist.

// mutable.cpp
class X
{
public:
    bool GetFlag() const
    {
        m_accessCount++;
        return m_flag;
    }
private:
    bool m_flag;
    mutable int m_accessCount;
};

Weitere Informationen

Schlüsselwörter