我在头文件中声明CTypedPtrArray<CObject,CZhangB*> Array,然后再.app文件中定义一个CZhangB型对象指针,用Add为什么会出错?(我已经在stdafx.h中加入了#include <afxtempl.h>)
如下:
         CZhangB* rec=new CZhangB;
rec->day=dlg.m_day;
rec->month=dlg.m_money;
rec->m_inorout=boolinorout;
rec->m_moneycount=dlg.m_money;
rec->people=dlg.m_consumer;
rec->m_thing=dlg.m_consum;
Array.Add(rec);
c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(1539) : error C2039: 'Add' : is not a member of 'CObject'

解决方案 »

  1.   

    这样可以吗?
    CTypedPtrArray<CZhangB,CZhangB*> Array
      

  2.   

    应该是Array.AddTail(rec);
    或Array.AddHead(rec);
      

  3.   

    addtail的错误和上面一样!!!
      

  4.   

    哦刚才没看仔细
    把CTypedPtrArray<CObject,CZhangB*> Array
    改成CTypedPtrList<CObject,CZhangB*> list
    后用AddTail就一定可以
    如果是用数组的话,用Add方法是错误的,你可以参考一下MSDN
      

  5.   

    我想你很有可能是CZhangB类定义的有问题,
    如果CZhangB类不是CObject派生的话,那你这样用就是大错特错了!!!
      

  6.   

    我在.cpp中定义上述代码无论是用Array还是List都是可以的,但是如果声明在.h中在.cpp中使用Array就会出现上述错误!!!
      

  7.   

    你是把CZhangB定义的头文件也包含到.h文件中,接着在.h中定义Array,
    再在.cpp中写上述Add代码的吗?
      

  8.   

    程序没有问题,定义错了:按下面的改public:
    CTypedPtrArray<CObArray,CZhangB*>m_myArray;
      

  9.   

    我就是在.h(要调用该类)中定义的CZhangB类的(包括构造函数)然后再.cpp中写上述代码
      

  10.   

    Saimen 是对的, Add 不是CObject的成员函数, 是CObArray的成员函数。
      

  11.   

    不会吧。我在同一个文件中用就没事和Add是不是CObject的成员函数好像没什么关系!!