Avatar ·

Para que serve a palavra-chave mutable em C++? Apenas para métodos const?

Olá a todos! Estou estudando C++ e me deparei com a palavra-chave `mutable`. Nos livros, dizem que ela permite alterar um membro da classe mesmo em métodos `const`. Mas acho isso estranho — por que alterar algo em um método marcado como constante? Isso não viola a própria ideia de constância? Aqui está um exemplo que escrevi: ```cpp class Counter { private: mutable int accessCount = 0; int value = 0; public: int getValue() const { accessCount++; // funciona por causa do mutable return value; } int getAccessCount() const { return accessCount; } }; ``` Entendo que `accessCount` é um contador de acessos ao getter. Mas não seria melhor simplesmente remover o `const` do método `getValue()`? Ou usar `const_cast`? Parece-me que `mutable` é uma espécie de "brecha" que torna o código menos previsível. Por favor, me digam: existem outros usos para `mutable`? Ou este é o único cenário? Talvez eu esteja perdendo algo e