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

在C++程序链表中链进不同类型对象解析

2012-09-16 
在C++程序链表中链入不同类型对象解析在C++程序链表中链入不同类型对象解析(希望对各位朋友们有所帮助---)

在C++程序链表中链入不同类型对象解析

在C++程序链表中链入不同类型对象解析(希望对各位朋友们有所帮助---)

????? 众所周知,一个C++程序链表中的对象都是同一类型的。而实际上,这也是必须的,否则,返回节点中的数据这样的函数的返回值的类型是什么呢?但是,人的要求是无止境的。把不同的对象链在一个链表中的目的是为了方便使用,现在一定记住这个原则,后面的讨论都是基于这个原则的。

  达到这个目标的原理其实很简单,只要把不同类型的对象变成同样的类型就可以了。看下面的结构定义:

  • void?ListTest_MObject() ??
  • { ??
  • ???????List?a; ??
  • ???????Shape?*p1?=?new?Circle; ??
  • ???????Shape?*p2?=?new?Line; ??
  • ???????p1->Input(); ??
  • ???????p2->Input(); ??
  • ???????a.Insert(p1); ??
  • ???????a.Insert(p2); ??
  • ???????Shape?*p?=?*a.Next(); ??
  • ???????p->Print(); ??
  • ???????delete?p; ??
  • ???????a.Put(NULL); ??
  • ???????p?=?*a.Next(); ??
  • ???????p->Print(); ??
  • ???????delete?p; ??
  • ???????a.Put(NULL); ??
  • } ??
  • #endif
  • class?ShapeList?:?public?List ??
  • { ??
  • public: ??
  • ???????BOOL?SL_Remove() ??
  • ???????{ ??
  • ??????????????Shape?*p?=?*Get(); ??
  • ??????????????delete?p; ??
  • ??????????????return?Remove(); ??
  • ???????} ?
  • };
  • 热点排行