Я использую класс A из библиотеки и хочу добавить к нему некоторые функции через собственный класс B . Пользователь класса B должен быть производным от него, как если бы он был производным от класса A.
class A {
public:
virtual void func1()=0;
virtual void func2()=0;
...
}
class B: public A {
public:
virtual void func1() {...}
}
Поэтому, если кто-то создает класс C, производный от B, он должен будет реализовать func2:
class C: public B {
public:
virtual void func2() {...}
}
Это очень важно для моего приложения, этот класс C не перезаписывает func1, исключая B :: func1 ().
Есть ли способ запретить перезапись этой виртуальной функции для всех дочерних классов B? Если не в простом C ++, есть ли что-то в ускоренном MPL, которое вызывает ошибку компилятора при перезаписи этой функции?