Junior — Middle
118
Qanday qilib konstant sifatida e'lon qilingan metod ichida holatni o'zgartirish mumkin?
AIdan javob
sobes.tech AI
В C++ метод, объявленный как константный (с ключевым словом const), не может изменять состояние объекта, то есть не может изменять нестатические поля класса. Однако есть способ модифицировать состояние внутри такого метода — использовать ключевое слово mutable для полей класса. Поля, объявленные как mutable, могут изменяться даже внутри константных методов.
Пример:
class Example {
mutable int counter = 0; // можно изменять в const методах
public:
void foo() const {
counter++; // изменение mutable поля внутри const метода
}
};
Таким образом, mutable позволяет хранить изменяемое состояние, например, для кэширования или подсчёта вызовов, не нарушая константность интерфейса.