mutable C++ изменение членов константного объекта

1) mutable ключевое слово применяется к не константным и нестатическим членам класса.

2) Если объект объявить как константный, то mutable члены объекта можно будет изменить.


class Point{ // Класс Point
public:
    mutable int x;  // Координата х
    int y;          // Координата у
    Point(int a, int b) : x(a), y(b){}; // Конструктор (без него нельзя создать константный объект)
};

int main(void) {
    const Point pt(10, 20); // Создаем объект
    pt.x = 40;  // Так как x - mutable, его можно менять даже у константного объекта
    pt.y = 50;  // Ошибка! У константного объекта нельзя менять члены.
}
2023-10-22



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

Конструктор в C++. Конструктор копирования и оператор присваивания.
delete C++ оператор освобождения памяти и спецификатор ограничения доступа
explicit С++ запрет неявных преобразования при вызове конструктора
friend C++ дружественная функция имеющая доступ к закрытым членам класса
mutable C++ изменение членов константного объекта
new C++ динамическое выделение памяти
private С++, С++ приватные члены класса, С++ закрыты члены класса
protected C++ указание защищенных членов класса
public С++, С++ открытые члены класса
struct С++ структура
this C++ указатель на текущий объект класса
virtual C++ виртуальные функции