解决 main 中的LNK2019错误

Resolving a LNK2019 error in main

本文关键字:错误 LNK2019 中的 main 解决      更新时间:2023-10-16

我知道有很多与我类似的链接错误问题,但我无法通过任何响应来修复它。我已确保添加正确的范围解析运算符,并为构造函数和析构函数提供主体,但错误仍然存在。除了"这已经回答了"之外,谁能给我一个提示?

Xx.obj : error LNK2019: unresolved external symbol "public: __thiscall Y::Y(void)" (??0Yy@@QAE@XZ) referenced in function _main

这是相关代码:

#include <iostream>
class Xx
{
X::X() {};
X::~X() {};
}; 
class Y : public X
{
public: //added public
Y::Y();
Y::~Y();       
};
int main()
{
X *x = new Y;
Y *y = new Y; //turned new Y to new X
delete &x; //added deletes
delete &y; //added deletes
return 0;
}

您需要定义构造函数以Yy

您会注意到,Xx已按如下方式定义构造函数:

Xx::Xx() {};

大括号是方法的主体(或定义)。Yy构造函数的声明如下所示:

Yy::Yy();

你缺少你的身体(基于你提供的代码),我假设你可能想遵循Xx类中的相同模式。 只需将其更改为以下代码:

Yy::Yy() {};

也就是说,您还缺少析构函数的定义(Yy中声明的方法,以~开头)用于Yy