我定义一个折线类的构造函数
CBrokenLine::CBrokenLine(CArray<CPoint,CPoint>PointArray)
其中PointArray记录每次单击鼠标时的坐标,但我构建类的时候
CBrokenLine* pBrokenLine=new CBrokenLine(m_PointArray);
为什么会出现以下错误:
error C2664: '__thiscall CBrokenLine::CBrokenLine(class CArray<class CPoint,class CPoint>)' : cannot convert parameter 1 from 'class CArray<class CPoint,class CPoint>' to 'class CArray<class CPoint,class CPoint>'
该怎样避免呢?

解决方案 »

  1.   

    typedef CArray<CPoint,CPoint> pointArray;

    CBrokenLine::CBrokenLine(pointArray PointArray)
    最好public
      

  2.   

    由于CArray类并不支持拷贝构造函数,因此CBrokenLine::CBrokenLine(CArray<CPoint,CPoint>PointArray)
    中,将CArray作为参数类型是不可以的。
    修改办法是用CArray的引用或者指针类型作为参数。建议使用引用类型。
    CBrokenLine::CBrokenLine(CArray<CPoint,CPoint>& PointArray)