предположим, что какой-то (устаревший)код, который нельзя трогать, объявить
struct B{
public:
void f(){}
};
и предположим иметь
struct A{
public:
virtual void f()=0;
};
возможно ли сделать вызов подкласса A B::f без явного вызова f(), т.е. вместо
struct C: public A, public B{
void f(){
B::f();
}
};
иметь что-то вроде
struct C:virtual public A,virtual public B{
};
(обратите внимание, что этот последний класс является абстрактным, для компилятора A::f не определен)