我正在尝试使用类构造函数设置本金并开始收到此错误。
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/