首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

新人有关问题, 关于接口继承

2012-02-05 
新人问题, 关于接口继承本人新人,对接口继承有点疑惑,对于如下两种写法,在实现上有什么不同吗?///////////

新人问题, 关于接口继承
本人新人,对接口继承有点疑惑,对于如下两种写法,在实现上有什么不同吗?

//////////////////   写法1
interface   IMyInterface   :   IUnknown
{
            ...
}

interface   IMyInterfaceEx   :   IUnknown   //   版本扩展功能接口

CMyInterface   :   public   IMyInterface,
                              public   IMyInterfaceEx
{
            ...
}
//////////////////   写法2
interface   IMyInterface   :   IUnknown
{
            ...
}

interface   IMyInterfaceEx:   IMyInterface   //   版本扩展功能接口,直接从原接口中继承
{
            ...
}

CMyInterface   :   public   IMyInterfaceEx
{
            ...
}

这两种写法编译都能通过,且功能正常,但没有区别吗?谢谢




[解决办法]
当然有区别了。
1、两种情况下的CMyInterface类大小不一样,vftb也不一样
2、需要增加接口的情况下,使用第一种方式跟容易扩展
[解决办法]
具体情况要具体分析,如果你增加的是一个新的,与原来的接口完全无关的接口,那么就独立成一个新的接口更好;如果你这个新增部分与原来的接口逻辑上是一个模块的,是原有部分的一个补充,那么就继承原来接口比较好。
从原有接口继承,这样老的接口是不变的,使用原来版本的接口的程序仍然不会受到影响。这方面的关系,可以看看Essential COM

热点排行