通过定义的内部结构link实现节点的双向链接,该类完成对双向链表的构造,控制对节点的操作,包括删除,替换,插入,追加,清除链表等,此外该类还提供了内部公有迭代类iterator和const_iterator;这两个类用于实现对链表对象DLListBase的遍历,前者能够实现对链表内元素的修改,后者不能对链表内元素修改。为了更好的实现遍历,DLListBase中还提供了first(),end()成员函数分别生成指向链表第一个元素和最后一个元素的迭代器iterator或const_iterator。
另外该类屏蔽了复制构造函数和赋值构造函数,因此不能通过以下方式进行DLListBase类对象的声明:
DLListBase llistA;
DLListBase llistB(llistA); //这是不允许的,因为复制构造函数被屏蔽
DLListBase llistC=llistA; //也是不行的,赋值构造被屏蔽
三个私有成员变量link* first_,link* last_及label nElmts_分别为指向第一个元素的指针,指向最后一个元素的指针和链表中元素的个数。
构造函数有两个一个为默认构造函数,其将三个私有成员变量均设为0,另外一个以link* a作为函数参数,将first_和last_都设为a,并且将a注册即a->prev_=a;a->next_=a; 私有成员变量nElmts_=1。
成员函数clear()将清除链表,其并不一一删除各元素,只是将自身三个私有变量的值重置为0,其他工作交由link的派生类或程序员来完成。
正文
DLListBase类解读2008-08-12 16:53:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/bioexplore/37527.html
阅读(2627) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论