我想从一个接口实现纯虚方法,使用具体类提供的实现 而不必显式调用具体类的方法。例如:从具体类使用继承来实现纯虚方法C++
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()的包装器?
代码似乎罚款:http://liveworkspace.org/code/2W44n2$3 – SomeWittyUsername
一旦我添加了','你错过了,这对编译G ++ 4.5的罚款。你能告诉我们导致问题的真实代码吗? –
我不想这样做。我想告诉编译器,这个实现是从ConcreteA提供的,而不使用包装器/存根。有一种方法? –