Junior — Middle
113
Sabit olarak ilan edilen bir yöntem içinde durumu nasıl değiştirebilirsiniz?
AI'dan gelen yanıt
sobes.tech yapay zeka
В C++ метод, объявленный как константный (с ключевым словом const), не может изменять состояние объекта, то есть не может изменять нестатические поля класса. Однако есть способ модифицировать состояние внутри такого метода — использовать ключевое слово mutable для полей класса. Поля, объявленные как mutable, могут изменяться даже внутри константных методов.
Пример:
class Example {
mutable int counter = 0; // можно изменять в const методах
public:
void foo() const {
counter++; // изменение mutable поля внутри const метода
}
};
Таким образом, mutable позволяет хранить изменяемое состояние, например, для кэширования или подсчёта вызовов, не нарушая константность интерфейса.