我正在實現一個簡單的鏈接列表,但我不斷收到LNK2019錯誤,我簡化了我的代碼到最低限度來跟蹤問題,但我一直得到它。我使用Visual Studio 2010中我的頭文件是:錯誤LNK2019簡單的鏈接列表實現
#ifndef __TSLinkedList__H__
#define __TSLinkedList__H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "LinkedNode.h"
template <class T>
class LinkedList
{
public:
LinkedList(void);
~LinkedList(void);
protected:
LinkedNode<T> * head;
};
實現文件是:
#include "StdAfx.h"
#include "LinkedList.h"
template <class T>
LinkedList<T>::LinkedList(void)
{
head = NULL;
}
template <class T>
LinkedList<T>::~LinkedList(void)
{
}
主要功能是:
#include "stdafx.h"
#include "stdlib.h"
#include "LinkedList.h"
int _tmain(int argc, _TCHAR* argv[])
{
LinkedList<int> mList;
system("PAUSE");
return 0;
}
和我得到這個錯誤:
錯誤1錯誤LNK2019:símboloexterno「public:__thiscall LinkedList ::〜LinkedList(void)」(?? 1?$ LinkedL ist @ H @@ QAE @ XZ)in _wmain
我得到與構造函數相同的錯誤。有趣的是它指向_wmain,而我的主要功能被稱爲_tmain。我已經嘗試將子系統鏈接器從/ SUBSYSTEM:WINODWS更改爲/ SUBSYSTEM:CONSOLE,但它已經設置爲/ SUBSYSTEM:CONSOLE。很明顯,我的實現比這個做得更多,但是我把它全部剔除以便跟蹤這個問題。幫助wpuld被折服,這是讓我瘋狂。我是C++新手。
確定關於這個更多的問題..只是移動頭文件中的實現。模板**不能在頭文件/源文件中分開。 – 2012-07-12 14:53:24
[爲什麼模板只能在頭文件中實現?](http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file) – 2012-07-12 14:55:36
此外,您不應該使用[保留名稱](http://stackoverflow.com/q/228783/204847)作爲包含警衛。 – 2012-07-12 14:56:27