我收到这个奇怪的链接器错误:
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
Run Code Online (Sandbox Code Playgroud)
从第一个错误描述中,它可能与析构函数有关.
我有一个带有纯虚析构函数的空和抽象数据类:
virtual ~Data()=0;
Run Code Online (Sandbox Code Playgroud)
和一个派生自数据的类,带有一个简单的析构函数实现:
Job::~Job()
{
}
Run Code Online (Sandbox Code Playgroud)
你能发现问题吗?我该如何解决?谢谢!
您需要为纯虚拟析构函数提供定义.
C++ 03 12.4析构函数
第7段:
析构函数可以声明为虚拟(10.3)或纯虚拟(10.4); 如果在程序中创建了该类或任何派生类的任何对象,则应定义析构函数.如果类具有带虚拟析构函数的基类,则其析构函数(无论是用户还是隐式声明)都是虚拟的.
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |