2012年软考程序员考试考前知识点复习指导(16)
09-12
0



C++自动列表模式 

该模式引自游戏编程精粹,里面是windows的代码,放到linux下不能运行,所以进行了调整。
  说明:在程序设计的时候,会经常用到一组或几组类型相同(classT)的数据,假设我们使用链表存储。

  面临的问题:

  1、链表存放的位置。

  2、每创建一个对象都要插入到该链表中,每销毁一个对象都要从链表中删除

  3、不能胡乱的插入和删除对象。

  要解决上面的问题,可能需要在很多地方插入类似的代码,往往这种代码就是引入bug的地方,有一种解决方案就是“自动列表模式”。

  点击(此处)折叠或打开

  #ifndef_TAUTOLISTS_H_

  #define_TAUTOLISTS_H_

  #include

  #include

  usingnamespacestd;

  template

  classTAutolists

  {

  typedeftypenamelist::iteratoriter_t;

  public:

  TAutolists()

  {

  ms_List.push_front(static_cast(this));

  }

  virtual~TAutolists()

  {

  ms_List.remove(static_cast(this));

  }

  public:

  staticT*GetAutolistFirst()

  {

  if(ms_List.begin()==ms_List.end())

  

相关内容

热门资讯

2012年软考程序员考试考前知... 2012年软考程序员考试考前知识点复习指导(6)
四川计算机软考:各市州人事考试... 四川计算机软考:各市州人事考试机构咨询电话
成绩合格考生的资格登记表如何存... 成绩合格考生的资格登记表如何存入个人人事档案?
软件水平资格:网络管理员考试说... 软件水平资格:网络管理员考试说明
甘肃取得高级计算机软考资格可聘... 甘肃取得高级计算机软考资格可聘任高级工程师职务
2011年软件水平考试:网络管... 2011年软件水平考试:网络管理员学习辅导笔记9
软件水平资格:程序员考试说明 软件水平资格介绍:程序员考试说明
软件水平资格:电子商务技术员考... 软件水平资格:电子商务技术员考试说明