lineType::lineType
, который является конструктором, генерируется неявно, поскольку вы не предоставили никаких пользовательских конструкторов. Сгенерированные по умолчанию конструкторы не принимают аргументов, но вы пытаетесь указать три аргумента в строках:
lineType line1(a, b, c);
lineType line2(d, e, f);
lineType line3(g, h, i);
Я подозреваю, что вы хотели воспользоваться преимуществом агрегатной инициализации , которую вы, к сожалению, не можете использовать, поскольку ваши a
, b
и c
переменные private
. Возможно, вы захотите добавить такой конструктор самостоятельно:
lineType(const double a, const double b, const double c)
:a(a), b(b), c(c) { }
Но это еще не все. У вас есть еще пара проблем с вашим кодом. В частности:
if (line1.isParallel(line2)) cout << "line1 is parallel to line 2" << endl;
содержит опечатку. Это должно быть isParrallel
, как объявлено в вашем классе (что также является опечаткой) вместо isParallel
. Исправьте любой из них.
Наконец, строка:
if (line2.intersect(line3, x, y))
не скомпилируется, поскольку intersect()
возвращает void
, а не bool
. if
операторы требуют, чтобы они были предоставлены либо bool
s, либо что-то, что неявно преобразуется в тип bool
. Сделайте так, чтобы ваша функция возвращала bool
, что является логическим предположением для функции, имя которой начинается с is
.