Borland C ++ 5.02 не может вызвать конструктор с параметрами

У меня есть следующее определение класса в заголовочном файле, который я скопировал из сети

#ifndef A2DD_H
#define A2DD_H

class A2DD
{
int gx;
int gy;
public:
A2DD();
A2DD(int x,int y);
};
#endif

И в файле реализации у меня есть
`

#include "A2DD.h"
A2DD::A2DD()
{
}

A2DD::A2DD(int x,int y)
{
gx = x;
gy = y;
}

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

Информация: Строительство …

Информация: Компиляция C: \ Users … \ Desktop \ main.cpp

Информация: Связывание C: \ Users … \ Desktop \ main.exe

Ошибка: Ошибка: Неразрешенный внешний ‘A2DD :: A2DD (int, int)’, на который ссылается C: \ USERS … \ DESKTOP \ MAIN.OBJ

#include "A2DD.h"int main()
{
A2DD add(2,3);
return 0;
}

Однако когда A2DD add(); вызывается без параметров, программа работает нормально.

Теперь вам может быть интересно, почему я скопировал код из Интернета, ну, у меня есть задание по программированию для некоторого курса по электротехнике, который включает в себя классы, и мы можем использовать только Borland, и да, код работал в Visual C ++ … помогите, пожалуйста

1

Решение

Вам нужно скомпилировать и связать файл, в котором вы реализуете конструкторы (A2DD.cpp). Вы должны сообщить Borland, что это файл реализации, который принадлежит вашему проекту.

То, что вы неправильно поняли, это:

A2DD add();

Оно делает не вызовите конструктор по умолчанию, он только объявляет функцию с именем add который возвращает A2DD и не имеет параметров. Поэтому это объявление функции в основном ничего не делает в вашем коде, и конструктор по умолчанию никогда не вызывается.

Если вы хотите создать объект с конструктором по умолчанию, вам нужно

A2DD add;
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]