现按网上找到的一方法建立一头文件如下:// UltraCArray_T.h
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ULTRACARRAY_T_H__552AA3BD_C40E_4090_B373_53767023912A__INCLUDED_)
#define AFX_ULTRACARRAY_T_H__552AA3BD_C40E_4090_B373_53767023912A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxtempl.h>
template <class TYPE, class ARG_TYPE>
class UltraCArray_T : public CArray <TYPE, ARG_TYPE>
{
public:
void operator =(const UltraCArray_T<TYPE, ARG_TYPE> &rhs);
};template <class TYPE, class ARG_TYPE>
void UltraCArray_T<TYPE, ARG_TYPE>
::operator =(const UltraCArray_T<TYPE, ARG_TYPE> &rhs)
{
RemoveAll();
Append(rhs);
}#endif // 在使用定义如下(VeloPoint是自己定义的一STRUCT): typedef UltraCArray_T<VeloPoint,VeloPoint&> m_arrPointBY;
typedef UltraCArray_T<m_arrPointBY , m_arrPointBY&> m_arrPointBX;
typedef UltraCArray_T<m_arrPointBX , m_arrPointBX&> m_arrPointBlock;在使用以下方法: m_arrPointBlock.RemoveAll();
m_arrPointBlock.SetSize(nXCount);
m_arrPointBlock[nXNum][nYNum].Add(vp);
时均碰到错误,错误信息如下:
error C2143: syntax error : missing ';' before '.'
error C2143: syntax error : missing ';' before '['
等,请问如何解决。另外,我是想实现一个三维数组A[X][Y][Z];其中X,Y是由变量赋值后不会变,但Z的数值不定。如果有其它的方法实现也行。
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ULTRACARRAY_T_H__552AA3BD_C40E_4090_B373_53767023912A__INCLUDED_)
#define AFX_ULTRACARRAY_T_H__552AA3BD_C40E_4090_B373_53767023912A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxtempl.h>
template <class TYPE, class ARG_TYPE>
class UltraCArray_T : public CArray <TYPE, ARG_TYPE>
{
public:
void operator =(const UltraCArray_T<TYPE, ARG_TYPE> &rhs);
};template <class TYPE, class ARG_TYPE>
void UltraCArray_T<TYPE, ARG_TYPE>
::operator =(const UltraCArray_T<TYPE, ARG_TYPE> &rhs)
{
RemoveAll();
Append(rhs);
}#endif // 在使用定义如下(VeloPoint是自己定义的一STRUCT): typedef UltraCArray_T<VeloPoint,VeloPoint&> m_arrPointBY;
typedef UltraCArray_T<m_arrPointBY , m_arrPointBY&> m_arrPointBX;
typedef UltraCArray_T<m_arrPointBX , m_arrPointBX&> m_arrPointBlock;在使用以下方法: m_arrPointBlock.RemoveAll();
m_arrPointBlock.SetSize(nXCount);
m_arrPointBlock[nXNum][nYNum].Add(vp);
时均碰到错误,错误信息如下:
error C2143: syntax error : missing ';' before '.'
error C2143: syntax error : missing ';' before '['
等,请问如何解决。另外,我是想实现一个三维数组A[X][Y][Z];其中X,Y是由变量赋值后不会变,但Z的数值不定。如果有其它的方法实现也行。
然后,用CPtrArray 类管理这个类,实现数据的操作,要添加多少,只需要直接Add就行,不需要SetSize();
typedef UltraCArray_T <VeloPoint,VeloPoint&> m_arrPointBY;
typedef UltraCArray_T <m_arrPointBY , m_arrPointBY&> m_arrPointBX;
typedef UltraCArray_T <m_arrPointBX , m_arrPointBX&> m_arrPointBlock; 这里只是声明,根本没有定义,当然不能使用 -_-!
改了以后没有出现问题。
由于自己的失误耽误大家的时间了,不好意思~~呵呵~~~