[英]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.