Назад к вопросам
Junior — Middle
83
Каким образом можно модифицировать состояние внутри метода, объявленного как константный?
Ответ от нейросети
sobes.tech AI
В C++ метод, объявленный как константный (с ключевым словом const), не может изменять состояние объекта, то есть не может изменять нестатические поля класса. Однако есть способ модифицировать состояние внутри такого метода — использовать ключевое слово mutable для полей класса. Поля, объявленные как mutable, могут изменяться даже внутри константных методов.
Пример:
class Example {
mutable int counter = 0; // можно изменять в const методах
public:
void foo() const {
counter++; // изменение mutable поля внутри const метода
}
};
Таким образом, mutable позволяет хранить изменяемое состояние, например, для кэширования или подсчёта вызовов, не нарушая константность интерфейса.