В C++ ключевое слово mutable используется для обозначения членов класса, которые могут изменяться даже в константных объектах или методах.
Объясните назначение и использование ключевого слова mutable в программировании.
В C++ ключевое слово mutable используется для обозначения членов класса, которые могут изменяться даже в константных объектах или методах.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В C++ ключевое слово mutable используется для обозначения членов класса, которые могут изменяться даже в константных объектах или методах.
Обычно, если объект объявлен как const, то его поля нельзя изменять внутри методов, объявленных как const. Но если поле помечено как mutable, то оно может быть изменено даже в таких условиях.
Это полезно для реализации кеширования, подсчёта статистики или других служебных данных, которые логически не меняют состояние объекта.
Пример:
class Example {
mutable int cache;
public:
Example() : cache(0) {}
int getValue() const {
if (cache == 0) {
// вычисляем значение и сохраняем в cache
cache = 42;
}
return cache;
}
};
Здесь cache можно изменять внутри const метода getValue благодаря mutable.