1

この奇妙なリンカーエラーが発生します:

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()
{
}

問題を見つけられますか?どうすれば修正できますか?ありがとう!

4

1 に答える 1

5

純粋な仮想デストラクタの定義を提供する必要があります。

C ++ 03 12.4デストラクタ
パラ7:

デストラクタは、仮想(10.3)または純粋な仮想(10.4)として宣言できます。そのクラスのオブジェクトまたは派生クラスがプログラムで作成された場合、デストラクタを定義する必要があります。クラスに仮想デストラクタを持つ基本クラスがある場合、そのデストラクタ(ユーザーまたは暗黙的に宣言されているかどうかに関係なく)は仮想です。

于 2012-05-31T10:41:55.313 に答える