构造提及另一种类型的对象时出错

时间:2018-11-14 10:11:03

标签: c++ compiler-errors

编译器会不断显示以下错误,这些错误是指不同的类构造函数原型。 Point2D是另一个用于构造Line2D对象的类。

  

C:\ Users ***** \ src \ Line2D.cpp | 3 |错误:没有匹配的函数可以调用'Point2D :: Point2D()'   include \ Point2D.h | 13 |注意:候选:Point2D :: Point2D(int,int)|

//this file(Line2D.h) has #include "Point2D.h"
Line2D(Point2D ,Point2D ); // constructor prototype

//this file(Line2D.cpp) has #include "Line2D.h"
Line2D::Line2D(Point2D pt1,Point2D pt2) // ERROR ON THIS LINE constructor method 
{
    this -> pt1 = pt1;
    this -> pt2 = pt2;
}

2 个答案:

答案 0 :(得分:1)

哦,问题在于您的构造函数正在为Point2D使用默认的构造函数,而该构造函数不存在。

使用初始化列表:

Line2D::Line2D(Point2D pt1,Point2D pt2):pt1(pt1), pt2(pt2){}

答案 1 :(得分:0)

我认为您错过了Point2D类的默认构造函数的实现。

Point2D::Point2D()