我在object.h中的类为
class CObject2D 
{ public:
  
  CObject2D(int n,PTPoint_2D p,int m);
  int     Material;
  int Npoint;
  PTPoint_2D Coord_Polyline;
 };
typedef CObject2D*  PObject2D;
typedef CArray<CObject2D,CObject2D&> Array;
在object.cpp中
CObject2D::CObject2D(int n,PTPoint_2D p,int m)
{   
Npoint=n;
    Coord_Polyline->x=p->x;
    Coord_Polyline->y=p->y;
    Material=m;
}
然后在MyDoc.cpp中响应一个按钮后加入如下代码:
PObject2D  AnyObj;
PTPoint_2D point_array;
AnyObj = new CObject2D(no,point_array,n);
Element->Add(* AnyObj);
NoElem++;
可编译时总是出现错误:'CObject2D' : no appropriate default constructor available
怎么会事啊?

解决方案 »

  1.   

    PObject2D  AnyObj;------>>>>????    PObject2D  * AnyObj;
    PTPoint_2D point_array;
    AnyObj = new CObject2D(no,point_array,n);
      

  2.   

    我是刚学编程的,不对勿怪!
    它好像是说没有有效的'CObject2D'类定义,你在object.cpp中加入对‘object.h’的包括了吧?
      

  3.   

    CObject2D::CObject2D(int n,PTPoint_2D p,int m)
    {
    Npoint=n;
    Coord_Polyline->x=p->x;
    Coord_Polyline->y=p->y;
    Material=m;
    }这个就是构造函数。
    错误:没有合适的默认构造函数。
    缺CObject2D::CObject2D()
      

  4.   

    晕,我看错。我认为问题应该是Element->Add(* AnyObj);缺一个拷贝构造函数。CObject2D::CObject2D( CObject2D& obj );