仅仅是个人体会,不一定正确,欢迎交流
CList是一个双向链表
CList<CString, CString&> m_ListProgHistoryName;
CList<ONE_SPLIT_TASK_ITEM, ONE_SPLIT_TASK_ITEM&> m_ListSplitTaskItem;
CList<PPROG_TYPE_ITEM, PPROG_TYPE_ITEM> m_ListProgType;
CList<COne_Frame*, COne_Frame*> m_aFreeFrame;
其中ONE_SPLIT_TASK_ITEM是一个结构体,PPROG_TYPE_ITEM是指向结构体PROG_TYPE_ITEM的指针,第二个参数加&对CList的成员函数传参数而言是引用传递,而不加就是值传递直接传递对象进去,这就是区别。当然对于指针类型的如PPROG_TYPE_ITEM是无需考虑这个的,直接传递指针就去即可,不需要加&。而对结构或者类加&高效一些。
使用自己定义的类的时候需要重载=操作符,但是发现COne_Frame并有重载,能用,是不是因为使用的是COne_Frame指针的问题,呵呵
对于自己定义的结构体而言,好像不用重载=也可以使用,我用
CList<ONE_SPLIT_TASK_ITEM, ONE_SPLIT_TASK_ITEM&> m_ListSplitTaskItem;实验了一下,发现不重载也可以使用CList