让我们假设一些无法触及的(遗留)代码声明
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 没有定义)