簡體   English   中英

C ++中的LNK2019錯誤

[英]LNK2019 error in C++

我收到這個奇怪的鏈接器錯誤:

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段:

可以將析構函數聲明為虛擬(10.3)或純虛擬(10.4); 如果在程序中創建了該類的任何對象或任何派生類,則應定義析構函數 如果一個類具有帶有虛擬析構函數的基類,則其析構函數(無論是用戶聲明的還是隱式聲明的)都是虛擬的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM