Borland C ++ 5.02无法使用参数调用构造函数

时间:2013-11-03 21:23:31

标签: c++ constructor unresolved-external borland-c++

我在从网络

复制的头文件中有以下类定义
#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

错误:错误:从C:\ USERS ... \ DESKTOP \ MAIN.OBJ引用的未解析的外部'A2DD :: A2DD(int,int)'

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

但是,如果在没有参数的情况下调用A2DD add();,程序运行正常。

现在你可能想知道为什么我从互联网上复制代码了,我有一个涉及类的电气工程课程的编程任务,我们只能使用Borland,是的,代码在visual c ++中运行... helpp please < / p>

1 个答案:

答案 0 :(得分:4)

您需要编译并链接实现构造函数的文件(A2DD.cpp)。您需要告诉Borland这是一个属于您项目的实现文件。

你误解的是:

A2DD add();

调用默认构造函数,它只声明一个名为add的函数,该函数返回A2DD并且没有参数。因此,此函数声明基本上不会对您的代码执行任何操作,并且永远不会调用默认构造函数。

如果要使用默认构造函数创建对象,则需要

A2DD add;