要求数据用CTypedPtrList来存储,可我不知道这是什么东西,谁能帮我一下,最后能有一些代码帮助理解一下,谢谢了

解决方案 »

  1.   

    新建一个基于MFC的SDI应用,在第四步选择高级,输入扩展名line,在DOC类中添加基于CTypedPtrList的成员,在Serializeha函数中遍历链表成员,一个一个地序列化到ar中或者从ar中取出
      

  2.   

    CTypedPtrList用來管理類別指針的鏈表模板..
    如:
    CTypedPtrList<CObject,CLine>m_Lines;//CLine 為自定的類,繼承自CObject.
    CLine *line=new CLine();
    m_Lines.AddTail(line);CDocument的Serialize里寫入
    m_Lines.Serialize(ar)CLine的Serialize里寫入
    m_Points.Serialize(ar)  //m_Points定義為CArray<CPoint,CPoint>m_Points;保存坐標點.
                           //根據實際情況改成你自已的成員.
      

  3.   

    还有一个问题啊,CTypedPtrList里存放的是指针,那它怎么用来存放数据然后存放到文件中呢?
      

  4.   

    CTypedPtrList是不是可以用来存放自定义类的对象啊?
    好糊涂啊~~~~~~~
      

  5.   

    现在已经知道大概了,就是怎么定义CTypedPtrList的对象以及怎么在文档类中保存入文件还是不大清楚,没有接触过文件的操作
      

  6.   

    看看vc文档序列化。自定义类的定义要注意,其父类必须有CObject。
      

  7.   

    自定义类难道一定要从CObject吗?
    这样的类怎么定义?
    插入一个新类好像不能从这样的类定义啊
      

  8.   

    CTypedPtrList<CObject,CLine>m_Lines;这句好像不行,要把CObject改成CObList就正常了
      

  9.   

    用了CObject后报这个错afxtempl.h(1566) : error C2664: '__thiscall CObject::CObject(const class CObject &)' : cannot convert parameter 1 from 'int' to 'const class CObject &'
      

  10.   

    自定义类的定义要注意,其父类必须有CObject,是指从父类是CObject的类派生。
      

  11.   

    CTypedPtrList<CObject,CLine>m_Lines
    其中CLine类是从CObject类继承的。
      

  12.   

    一个CTypedPtrList的例子,根本不用从CObject派生,保存取档的自己做就是了
    typedef struct xyz
    {
    double x;
    double y;
    double z;
    }XYZ;
    char str[256];
    CTypedPtrList <CPtrList, XYZ*> list;
    //添加
    XYZ *pxyz=new XYZ;
    pxyz->x=0;
    pxyz->y=1;
    pxyz->z=2;
    list.AddTail(pxyz);
    pxyz=new XYZ;
    pxyz->x=3;
    pxyz->y=4;
    pxyz->z=5;
    list.AddTail(pxyz);
    //遍历
    POSITION pos;
    pos=list.GetHeadPosition();
    while(pos)
    {
    pxyz=list.GetNext(pos);
    //可以修改其中的值
    pxyz->x=5;
    sprintf(str,"%f %f %f",pxyz->x,pxyz->y,pxyz->z);
    }
    //删除
    pos=list.GetHeadPosition();
    while(pos)
    {
    pxyz=list.GetNext(pos);
    delete pxyz;
    }
    list.RemoveAll();
      

  13.   

    pxyz=list.GetNext(pos);这句语句好像编译不通过