Junior — Middle
За какво се използва ключовата дума mutable вътре в метод, обявен като константен?
sobes.tech AI
Отговор от AI
Ключовата дума mutable в C++ позволява да се променя член-данните на обект дори и вътре в константни методи (const). Обикновено, константният метод не може да променя състоянието на обекта, но има случаи, когато е необходимо да се съхраняват променяеми данни, които не влияят на логическата константност на обекта, като кеш или брояч на извиквания.
Пример:
class Example {
mutable int cache;
public:
Example() : cache(0) {}
int getValue() const {
// Може да променя cache, въпреки че е const
cache++;
return cache;
}
};
Тук cache може да бъде променян вътре в getValue() const, защото е обявен като mutable.