触れることができないいくつかの(レガシー)コードが宣言すると仮定しましょう
struct B{
public:
void f(){}
};
そして、持っているとしましょう
struct A{
public:
virtual void f()=0;
};
明示的に f() を呼び出さずに、つまり代わりに A サブクラス呼び出し B::f を作成することは可能ですか?
struct C: public A, public B{
void f(){
B::f();
}
};
のようなものを持つ
struct C:virtual public A,virtual public B{
};
(コンパイラ A::f が定義されていないため、この最後のクラスは抽象であることに注意してください)