回 帖 发 新 帖 刷新版面

主题:【求助MFC之CArray】如何正确书写返回类型为CArray的函数??

//MFC中的一个函数(已经添加头文件afxwin.h和afxtempl.h)
CArray CPcapAnalyzeDlg::Get_CPoints(CString csr, int size)
{
           CArray<CPoint,CPoint&> m_array;
    CPoint fisrt_point(23,243);
     m_array.Add(fisrt_point);
    CPoint fisrt_point1(324,2);
     m_array.Add(fisrt_point1);
 
    return m_array;
 }


//上面的形参没有使用,不是重点,因为这只是个测试函数。

上面的函数返回类型我定义成CArray,没有用CArray<CPoint,CPoint&>,因为用VC++无法创建。

运行之后显示错误如下:
C:\Documents and Settings\Administrator\桌面\PcapAnalyze\PcapAnalyzeDlg.cpp(644) : error C2955: 'CArray' : use of class template requires template argument list
        d:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(238) : see declaration of 'CArray'
C:\Documents and Settings\Administrator\桌面\PcapAnalyze\PcapAnalyzeDlg.cpp(652) : error C2553: no legal conversion of return value to return type 'class CArray *'
执行 cl.exe 时出错.


//

后来,我用CArray<CPoint,CPoint&>作为函数的返回类型,运行之后错误如下:
C:\Documents and Settings\Administrator\桌面\PcapAnalyze\PcapAnalyzeDlg.cpp(652) : error C2558: class 'CArray<class CPoint,class CPoint &>' : no copy constructor available

回复列表 (共1个回复)

沙发

把返回类型改成 CArray* 指针类型看看

我来回复

您尚未登录,请登录后再回复。点此登录或注册