我想使用具体类提供的实现从接口实现纯虚拟方法,而不必显式调用具体类中的方法。例子:
class InterfaceA{
public:
virtual void foo() = 0;
};
class InterfaceB:public InterfaceA{
public:
virtual void bar() = 0;
};
class ConcreteA : public InterfaceA{
public:
virtual void foo(){}//implements foo() from interface
};
class ConcreteAB: public InterfaceB, public ConcreteA{
public:
virtual void bar(){}//implements bar() from interface
};
在这种情况下,编译器要求在 ConcreteAB 类中实现 foo(),因为 InterfaceB 没有实现它并且它继承自 InterfaceA。
有一种方法可以告诉编译器使用来自 ConcreteA 的实现,而不使用调用 ConcreteA::foo() 的包装器?