В C++ можно запретить наследование от класса несколькими способами.
🟠Использование `final` (C++11 и новее)
Ключевое слово
final запрещает наследование от класса.class Base final {
public:
void show() { std::cout << "Base class\n"; }
};
// Ошибка! Наследование запрещено
class Derived : public Base {
};🟠Закрытый или удалённый конструктор копирования и операторы присваивания
Можно сделать так, чтобы класс нельзя было создать или скопировать в унаследованных классах.
class Base {
private:
Base() = default; // Приватный конструктор
};Можно сделать конструктор
protected, если хотим создать объекты внутри класса, но не разрешать наследование снаружи. class Base {
protected:
~Base() = default; // Деструктор защищённый
};🟠Закрытый (private) деструктор
Если сделать деструктор
private, то класс нельзя будет корректно удалить через указатель. class Base {
private:
~Base() = default; // Закрытый деструктор
};Ставь 👍 и забирай 📚 Базу знаний