Имеет ли ключевое слово «mutable» какую-либо цель, кроме разрешения изменения элемента данных с помощью функции-члена coC++

Программы на C++. Форум разработчиков
Anonymous
Имеет ли ключевое слово «mutable» какую-либо цель, кроме разрешения изменения элемента данных с помощью функции-члена co

Сообщение Anonymous »

Некоторое время назад я наткнулся на код, который помечал член данных класса ключевым словом mutable. Насколько я понимаю, он просто позволяет вам изменять элемент в методе члена, квалифицированном const:

Код: Выделить всё

class Foo
{
private:
mutable bool done_;
public:
void doSomething() const { ...; done_ = true; }
};
Это единственное использование этого ключевого слова или оно нечто большее, чем кажется на первый взгляд? С тех пор я использовал эту технику в классе, помечая boost::mutex как изменяемый, позволяя функциям const блокировать его из соображений потокобезопасности, но, честно говоря, это похоже на хакерство.

Подробнее здесь: https://stackoverflow.com/questions/105 ... -member-to

Вернуться в «C++»