主题:【求助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
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