【MFC】关于mfc中的Clist

MSDN--》

template< class TYPE, class ARG_TYPE >
class CList : public CObject

已有类

class A{}

 

一般定义链表如下

Clist theList;

 

1:A必须要有无参构造;

2:一般如果第一个参数是对象的话  第二个参数一般为对象的引用;

3:Clist的析构函数可以自己释放所有结点  所以不需要我们再来处理;

 

 

注意

如果定义如下

Clist theList;

 

第一个参数是对象的指针;

1:这样第二个参数就不要用引用了;

2:此时A*是theList的结点中的数据域  Clist可以自动Remove   A*   但是却不能释放A*指向的内容

     所以需要我们在自己的类的析构函数中遍历释放指针指向的内容;

 

举例如下

POSITION pos = theList.GetHeadPosition(); while (pos) { CShape* pCurShape = theList.GetNext(pos); if (pCurShape) { delete pCurShape; pCurShape = NULL; } }

 

你可能感兴趣的:(【MFC】关于mfc中的Clist)