专注在线职业教育25年
下载APP
小程序
希赛网小程序
导航

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

责编:jinruin 2010-11-18

  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]  

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

加群交流

公众号

客服咨询

考试资料

每日一练

咨询客服