我想從一個接口實現純虛方法,使用具體類提供的實現 而不必顯式調用具體類的方法。例如:從具體類使用繼承來實現純虛方法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提供的,而不使用包裝器/存根。有一種方法? –