继承多个接口时出现有关问题
继承多个接口时出现问题
最近遇到一个问题,特向高手请教。
有两个接口,InterfaceA和InterfaceB,这两个接口都有同一个接口方法。程序如下:
class InterfaceA{
public:
virtual void func()=0;
};
class InterfaceB{
public:
virtual void func()=0;
}
现在,我的类需要实现同时实现这两个接口。
class myClass:public InterfaceA,public InterfaceB
{
public:
//现在如何分别实现这两个接口呢?
};
InterfaceA和InterfacB都是有第三方提供,我没办法更改。
请高手们赐教!
------解决方案--------------------
做一个夹层,这种方法是可移植性最好的。
最近遇到一个问题,特向高手请教。
有两个接口,InterfaceA和InterfaceB,这两个接口都有同一个接口方法。程序如下:
class InterfaceA{
public:
virtual void func()=0;
};
class InterfaceB{
public:
virtual void func()=0;
}
现在,我的类需要实现同时实现这两个接口。
class myClass:public InterfaceA,public InterfaceB
{
public:
//现在如何分别实现这两个接口呢?
};
InterfaceA和InterfacB都是有第三方提供,我没办法更改。
请高手们赐教!
------解决方案--------------------
做一个夹层,这种方法是可移植性最好的。
- C/C++ code
class IA:public InterfaceA { public: void func(){} }; class IB:public InterfaceB { public: void func(){} }; class myClass:public IA , public IB { };
------解决方案--------------------
- C/C++ code
class InterfaceA { public: virtual void func()=0; }; class InterfaceB { public: virtual void func()=0; }; class MyClass : public InterfaceA, public InterfaceB { public: virtual void InterfaceA::func() { printf("A"); } virtual void InterfaceB::func() { printf("B"); } }; int main(int argc, _TCHAR* argv[]) { MyClass* p = new MyClass(); ((InterfaceB*)p)->func(); return 0; }