Miembros de datos mutables (C++)
Esta palabra clave solo se puede aplicar a los miembros de datos no estáticos, no constantes y sin referencia de una clase. Si se declara un miembro de datos mutable
, después se permite asignar un valor a este miembro de datos desde una función miembro const
.
Sintaxis
mutable member-variable-declaration;
Comentarios
Por ejemplo, el siguiente código se compilará sin errores porque m_accessCount
se ha declarado como mutable
y, por tanto, se puede modificar con GetFlag
aunque GetFlag
sea una función miembro de tipo const.
// mutable.cpp
class X
{
public:
bool GetFlag() const
{
m_accessCount++;
return m_flag;
}
private:
bool m_flag;
mutable int m_accessCount;
};