Junior — Middle
112
Wie kann man den Zustand innerhalb einer als konstant deklarierten Methode modifizieren?
Antwort von AI
sobes.tech KI
В C++ метод, объявленный как константный (с ключевым словом const), не может изменять состояние объекта, то есть не может изменять нестатические поля класса. Однако есть способ модифицировать состояние внутри такого метода — использовать ключевое слово mutable для полей класса. Поля, объявленные как mutable, могут изменяться даже внутри константных методов.
Пример:
class Example {
mutable int counter = 0; // можно изменять в const методах
public:
void foo() const {
counter++; // изменение mutable поля внутри const метода
}
};
Таким образом, mutable позволяет хранить изменяемое состояние, например, для кэширования или подсчёта вызовов, не нарушая константность интерфейса.