集合类 CList的使用

集合类 CList的使用

  今天,在项目中,需要使用集合类,考虑到使用简单、方便,所以选择了CList。可没想到在使用的过程中却出现了学多问题。
  1.无法实现集合类的复制,需要重载类的=运算符;错误提示为无法从FunListNode 转换到FunListNode;
  2.没有可用的复制构着函数;
  3.没有默认的可用的构着函数
  4.注释中1 2 3都是必须的
 
typedef  CList<CString, CString> CStrList; //CTypedPtrList
class FunListNode : public CObject
{
    //DECLARE_SERIAL(FunListNode)
public:
    FunListNode(){}                                  //  1

public:
    CString  strFunName;                             // 函数名
    CStrList *listCalledFunName;                // 在这个函数中被调用的其他函数名列表

    FunListNode& operator = (FunListNode& data)      // 2
    {
       //防止自身赋值
        if(&data == this)
        {
            return *this;
        }
        strFunName = data.strFunName;
        listCalledFunName = data.listCalledFunName;
        return *this;
    }

    FunListNode(const FunListNode &data)             //3
    {
        strFunName = data.strFunName;
        listCalledFunName = data.listCalledFunName;
    }
    //virtual void Serialize(CArchive& ar);
};
CList<FunListNode , FunListNode &> m_lstFunList;

 

你可能感兴趣的:(Class)