代码:    CArray<CUIntArray, CUIntArray&> array;
    CUIntArray nArray;
    nArray.Add(1);
    array.Add(nArray);编译出错,提示头文件afxtempl.h中:template<class TYPE, class ARG_TYPE>
void CArray<TYPE, ARG_TYPE>::SetAtGrow(int nIndex, ARG_TYPE newElement)
{
ASSERT_VALID(this);
ASSERT(nIndex >= 0); if (nIndex >= m_nSize)
SetSize(nIndex+1, -1);
m_pData[nIndex] = newElement;   //此句报错
}提示信息:e:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(443) : error C2582: 'CUIntArray' : 'operator =' function is unavailable  请问为什么会出错,有什么好的方法可以实现在把动态数组作为另一个动态数组的元素?

解决方案 »

  1.   

    觉得使用MFC的这个东东很麻烦,需要重载=和拷贝构造函数,所以还是建议使用STL
      

  2.   

    我现在只会用GetAt(),Add();关注
      

  3.   

    象CUIntArray类的对象适合用指针来存储,
    CTypedPtrArray<CObArray,CUIntArray*> array;
    CUIntArray nArray;
    int len=10;
    for(int i=0;i<len;i++)
    {
       nArray.Add(i);
    }
    array.Add(&nArray);//保存
    CUIntArray *cu=array.GetAt(0);//读取for( i=0;i<len;i++)//输出
    {
        int n=cu->GetAt(i);
        TRACE("value=%d\n",n);
    }
      

  4.   

    liutian32朋友的答复非常完整,定义、基本操作都给出来了,再次感谢!