Есть класс A:
class A
{
protected:
virtual void f() = 0;
};
class B: private A
{
private:
void f();
};
Нужно создать класс D чтобы он наследовал B и A и имел свою собственную функцию f, примерно так:
class D: private A, private B
{
void f();
};
есть некоторая функция g(A*), которая вызывает A::f() и нужно, чтобы при вызове g из класса D:
g(this);
вызывалась D::f();
Грубо говоря, хочется чтобы B тихо и незаметно наследовал A, но дальше наследование не продолжалось. Виртуально наследовать A нельзя, так как B и D должны иметь свои собственные экземпляры А.
спасибо