gpt4 book ai didi

c++ - 引入参数化构造函数后显示 LNK 2019 未解析的外部符号的代码错误

转载 作者:行者123 更新时间:2023-12-02 10:32:28 25 4
gpt4 key购买 nike

我正在尝试使用类构造函数设置本金并开始收到此错误。

LNK2019 未解析的外部符号“public: __thiscall Bond::Bond(double,double,double,char)”(??0Bond@@QAE@NNND@Z) 在函数 _main 中引用

下面附上我的代码。如果有人能指出错误是什么,将不胜感激。提前致谢。

// bond.cpp file

Bond::Bond(double prin, double rat, double yTM, char typ)
{
cout << "I have created a tailored Bond" << endl;
setPrincipal(prin);
}

void Bond::setPrincipal(double prin)
{
principal = prin;
}

double Bond::getPrincipal()
{
return principal;
}

//main.cpp
int main(int argc, const char* argv[])
{
Bond complexBond(999.99, 0.05, 10, 'S');

cout << "complexBond.getPrincipal(): " << complexBond.getPrincipal() << endl;
return 0;
}

//bond.h header file
class Bond
{
public:
Bond();

Bond(double, double, double, char);

void setPrincipal(double);

double getPrincipal();

private:
double principal;
double rate;
double yearsToMaturity;
char paymentType; // 'A'nnual, 'S'emi-Annual, 'Q'uarterly
};

最佳答案

LNK2019通常是由两件事引起的:

  • 包含符号定义的源文件未编译
  • 使用了函数,但参数的类型或数量与函数定义不匹配。

  • 当我复制您的代码并运行它时,该错误不会出现。所以,我猜想bond.h 不包含在bond.cpp 中。您只需添加 #include "bond.h"在bond.cpp 的顶部。

    如果解决方案不能解决您的问题,您可以引用 Microsoft documents

    关于c++ - 引入参数化构造函数后显示 LNK 2019 未解析的外部符号的代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61748777/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com