在C++程序链表中链进不同类型对象解析
在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); ?? } ?? #endifclass?ShapeList?:?public?List ?? { ?? public: ?? ???????BOOL?SL_Remove() ?? ???????{ ?? ??????????????Shape?*p?=?*Get(); ?? ??????????????delete?p; ?? ??????????????return?Remove(); ?? ???????} ? };