我正在尝试使用类构造函数设置本金金额并开始收到此错误。
LNK2019未解析的外部符号"公共:__thiscall债券::债券(双精度,双精度,双倍,字符("(??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中。您只需在债券.cpp的顶部添加#include "bond.h"
。
如果解决方案不能解决您的问题,您可以参考Microsoft文档