Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539145
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类: C/C++

2010-03-19 12:10:41

最近遇到一个问题,特向高手请教。
有两个接口,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都是有第三方提供,我没办法更改。
请高手们赐教!


回复于:2008-02-29 13:03:28
做一个夹层,这种方法是可移植性最好的。
C/C++ code

class IA:public InterfaceA
{
public:
void func(){}
};
class IB:public InterfaceB
{
public:
void func(){}
};
class myClass:public IA , public IB
{
};

回复于:2008-02-29 13:04:05
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;
}

阅读(337) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-03-19 12:11:56

楼主bluyo(云游)2002-12-10 06:34:59 在 C/C++ / C++ 语言 提问 要用c++编一个容器类,存放及处理各种图形对象(圆,三角形,四边形等),这些派生类都有共同的积累(shape类)。但不论是队,表还是栈只能接收相同类型的数据。我曾经试过从这些派生类中再派生出一个多继承的类,但操作太过麻烦。已经在这个shapecontainer类上费了好几天了,希望大家能帮帮我这个新手。 4 楼maozefa(阿发伯)回复于 2002-12-10 20:40:51 得分 18 写一个存放及处理各种图形对象(圆,三角形,四边形等)的C++容器类并不复杂,也不见得只能处理相同的数据。容器类分直接容器类和间接容器类,直接容器类用来处理同样长度的数据结构或类,间接容器类用来处理不同的数据结构或类,请看简单例子(即兴写成,未上机运行,仅供参考): class Base { virtual void Display(void) = 0; }; class A