6接口的其他实现方法.pptVIP

  • 1
  • 0
  • 约1.97万字
  • 约 50页
  • 2019-08-10 发布于广东
  • 举报
* 6.复合技术的表格驱动 其实,我们已经看到,使用继承或使用复合来实现接口的差别并不大, 这两种技术可以和平共处. 我们曾利用表格驱动的方式实现了多重继承方式下的COM接口的QueryInterface函数.实际上,对于复合技术,也可以使用表格驱动的方式来实现它的QueryInterface函数. 表格驱动的本质是把接口的IID号和COM对象到这个IID号所代表的接口类子对象“subobject”的偏移联系起来.注意,我们的QueryInterface函数是在COM对象中实现的.而接口调用此函数,要么是通过虚函数改写的方式,要么是通过一个指向父类指针的方式进行委托调用. 无论哪种方式都是调用的COM对象定义的QueryInterface, 从这里(COM对象的this)出发, 如果有从COM对象到接口类子对象的偏移.(注意,这个偏移,有可能是从子类到基类的偏移,也有可能是从父类到嵌套子类的基类的偏移),我们当然可以得到接口类子对象.也就是接口指针. 上一段话的意思是说, 为了实现支持复合的表格驱动,只需要添加使用复合技术的接口的接口表项, 而QueryInterface函数,以及InterfaceTableQueryInterface函数,(见前面章节) 都不用更改. * 定义如下的宏: #define COMPOSITE_OFFSET(ClassName, BaseName,

文档评论(0)

1亿VIP精品文档

相关文档