gpt4 book ai didi

c++ - C++ 中的 LNK2019 错误

转载 作者:行者123 更新时间:2023-11-30 01:26:17 25 4
gpt4 key购买 nike

我遇到了这个奇怪的链接器错误:

Error   1   error LNK2019: unresolved external symbol "public: virtual __thiscall Data::~Data(void)" (??1Data@@UAE@XZ) referenced in function "public: virtual __thiscall Job::~Job(void)" (??1Job@@UAE@XZ) C:\...\Job.obj

Error 2 error LNK2019: unresolved external symbol "public: __thiscall List::DataNode::DataNode(class List::DataNode const &)" (??0DataNode@List@@QAE@ABV01@@Z) referenced in function "public: __thiscall List::List(class List const *)" (??0List@@QAE@PBV0@@Z) C:\...\List.obj

从第一个错误描述来看,可能与析构函数有关。

我有一个带有纯虚拟析构函数的空抽象数据类:

virtual ~Data()=0;

和一个从数据派生的类 Job,具有析构函数的简单实现:

Job::~Job()
{
}

你能发现问题吗?我该如何解决?谢谢!

最佳答案

您需要为纯虚拟析构函数提供定义。

C++03 12.4 析构函数
第 7 段:

A destructor can be declared virtual (10.3) or pure virtual (10.4); if any objects of that class or any derived class are created in the program, the destructor shall be defined. If a class has a base class with a virtual destructor, its destructor (whether user- or implicitly- declared) is virtual.

关于c++ - C++ 中的 LNK2019 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10831979/

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