Примерно так:ballymahon wrote:А как интересно? Можно конечно не использовать виртуальных функций и protected членов (о чем уже упоминалось) и тогда от наследования не будет особого толку, хотя сама возможность и будет присутствовать.8K wrote:Неужели нельзя "запечатать" класс собственными средствами С++? Не верю.
Как запретить наследование от данного класса - разве что сделать все конструкторы приватными и создавать обьекты статической функцией?
Code: Select all
class Final
{
protected:
Final(int) {}
};
class MySealedClass: private virtual Final
{
public:
MySealedClass(): Final(0) {};
/* your code */
};
class MyDerivedClass: public MySealedClass
{
};
Хотя этот код скомпилируется, при попытке создать переменную типа MyDerivedClass компилятор пошлет нас подальше. Говорят, такой вопрос даже на интервью бывает