计算机软考程序员:C语言的多态实现[5]

程序员 责任编辑:jinruin 2010-11-18

添加老师微信

备考咨询

加我微信

摘要:4.进阶――类结构树,父类不是纯虚类的类前面仅仅讲的是父类是纯虚结构的情况(面向对象建议的是所有类的基类都是从纯虚类开始的),那么当类层次比较多的情况下,出现父类不是纯虚结构怎么办呢。嘿嘿,其实在C中的实现比C++要简单多了。因为C中各个函数是分散的。在这里使用宏定义是一个很好的办法:比如两个类Act1,ActByOther

  4.进阶――类结构树,父类不是纯虚类的类

  前面仅仅讲的是父类是纯虚结构的情况 (面向对象建议的是所有类的基类都是从纯虚类开始的), 那么当类层次比较多的情况下,出现父类不是纯虚结构怎么办呢。嘿嘿,其实在C中的实现比C++要简单多了。因为C中各个函数是分散的。

  在这里使用宏定义是一个很好的办法:比如两个类Act1,ActByOther1“继承”Act1:

  MyVirtualInterface* ActByOther1_CreatInterface()
  {
  index=FindValid()
  //对象池或者使用Malloc
  if(index==-1) return NULL;
  St[index].Foo1= ActByOther1_Foo1;
  // Act1_Foo1要在下面具体实现
  St[index].Foo2= ActByOther1_Foo2;
  St[index].Foo3= ActByOther1_Foo3;
  Return &st [index];
  }

  #define ActByOther1_Foo1 Act1_Foo1 //这就是继承 嘿嘿
  ActByOther1_Foo2(){} // 可以修改其实现
  ActByOther1_DoByOther() {} //当然就可以添加新的实现咯

[1]  [2]  [3]  [4]  [5]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!