Sobes.tech
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.