Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpIhFC 72 of 150 menu
◀ ▶

Запрет наследования класса в C++

Отдельные типы задуманы как конечные звенья иерархии без потомков.

Ключевое слово final после имени класса запрещает дальнейшее наследование: объявление class Child : public AppSettings не пройдет компиляцию. Запишем финальный AppSettings и создадим его объект:

class AppSettings final { public: int timeout = 30; }; // class ExtendedSettings : public AppSettings { }; // ошибка

Создадим объект класса AppSettings и выведем значение таймаута:

int main() { AppSettings settings; std::cout << settings.timeout << "\n"; return 0; }

Объявите класс AppSettings с модификатором final.

Попробуйте объявить класс-наследник от AppSettings и убедитесь, что код не компилируется.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить