CArray动态数组嵌套不会写操作符重载(=)
写了一个动态数组包含动态数组的程序,结果运行时提示错误:error C2664: 'SetAt' : cannot convert parameter 2 from 'struct _everyneartriarray' to 'struct _everyneartriarray',在网上找了下好像是要操作符重载,但是不会
部分代码贴出来如下:
typedef struct _dct_tri
{
LONG p1;
LONG p2;
LONG p3;
}dct_tri;
typedef CArray<dct_tri,dct_tri>TRIARRAY;
typedef struct _everyneartriarray
{
TRIARRAY EveryNearTriArray;
}NEARTRIARRAY;
然后在运行的时候:
TRIARRAY everyNearTriArray;//临时变量,每个点的相邻三角形的数组,将包含在数组(NEARTRIARRAY类型的NearTriArray)里
NEARTRIARRAY nearTriArray;//临时变量
//(注:就是NearTriArray是一个NEARTRIARRAY类型的动态数组,而NEARTRIARRAY是包含TRIARRAY的类,TRIARRAY则是dct_tri的动态数组,dct_tri是一个结构体,m_triArray[i]则是包含三个点的结构体,是一个三角形三个点的编号)
nearTriArray.EveryNearTriArray.Add(m_triArray[i]);
NearTriArray.SetAt(j,nearTriArray);//这句提示错误
错误指向上面那句:error C2664: 'SetAt' : cannot convert parameter 2 from 'struct _everyneartriarray' to 'struct _everyneartriarray'
那位大侠有心帮在下解决哈问题,不甚感激!
第一次在CSDN论坛上发帖,未能有缚于规矩,还望见谅!
[解决办法]
代码不详细
大小写没区分
[解决办法]
说的比较乱,姑且认为是CArray<NEARTRIARRAY, const NEARTRIARRAY&> NearTriArray吧。
typedef struct _everyneartriarray{ TRIARRAY EveryNearTriArray; const _everyneartriarray& operator = (const _everyneartriarray& other) { EveryNearTriArray.Copy(other.EveryNearTriArray); return *this; }}NEARTRIARRAY;