我用CArray<CStringArray, CStringArray&> caTemp
想构健一个三维数组。
但是编译的时候出错指向afxtempl.h
AFX_INLINE TYPE CArray<TYPE, ARG_TYPE>::GetAt(int nIndex) const
{ ASSERT(nIndex >= 0 && nIndex < m_nSize);
return m_pData[nIndex]; }
不只道是什么原因?
怎么解决?
请高手指点~~
想构健一个三维数组。
但是编译的时候出错指向afxtempl.h
AFX_INLINE TYPE CArray<TYPE, ARG_TYPE>::GetAt(int nIndex) const
{ ASSERT(nIndex >= 0 && nIndex < m_nSize);
return m_pData[nIndex]; }
不只道是什么原因?
怎么解决?
请高手指点~~
你看看nIndex的值是多少吧
然后用这个类来初始化CArray模板。
CArray<CStringArray, CStringArray& > caTemp
CStringArray&本身是个模板类,用它做参数时在>前要加空格,否则会被解析成>>,而>>是有语义的
{
public:
CMyStrArr();
virtual ~CMyStrArr();
const CMyStrArr& operator=(const CMyStrArr& src)
{
RemoveAll();
for(int i=0;i<src.GetSize();i++)
Add(src[i]);
return *this;
}
CMyStrArr(const CMyStrArr& src)
{
RemoveAll();
for(int i=0;i<src.GetSize();i++)
Add(src[i]);
}};
使用:
CArray<CMyStrArr,CMyStrArr&> arr;
CMyStrArr s;
s.Add("test");
arr.Add(s);
CArray<CStringArray, CStringArray&> caTemp
to
CArray<CStringArray*, CStringArray*> caTemp