Ошибка при создании объекта, упоминающего другой тип - PullRequest
0 голосов
/ 14 ноября 2018

Компилятор постоянно показывает следующие ошибки, относящиеся к другому прототипу конструктора класса. Point2D - это другой класс, который используется для создания объекта Line2D.

C: \ Users ***** \ src \ Line2D.cpp | 3 | ошибка: нет соответствующей функции для вызова Point2D :: Point2D () include \ Point2D.h | 13 | note: кандидат: 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 голосов
/ 14 ноября 2018

Я думаю, что вы пропустили реализацию конструктора по умолчанию для Point2D класса.

Point2D::Point2D()
0 голосов
/ 14 ноября 2018

О, проблема в том, что ваш конструктор использует конструктор по умолчанию для Point2D, который не существует.

Используйте списки инициализации:

Line2D::Line2D(Point2D pt1,Point2D pt2):pt1(pt1), pt2(pt2){}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...