有誰有如何發生這個錯誤任何見解?我做了一個鏈表在C++中,在我的主要方法的模板,我有這樣的代碼:'名單」是不是一個模板
List<int> list;
list.insert(1, 9);
而且我得到的第一行這樣的錯誤:
`List' is not a template
我包括這個文件:
template <typename T>
class List
{
public:
List();
List(const List& aList);
~List();
bool isEmpty() const;
int getLength() const;
void insert(int index, const T& newItem);
void remove(int index);
void retrieve(int index, T& dataItem) const;
private:
struct ListNode
{
T item;
ListNode *next;
};
int size;
ListNode *head;
ListNode *find(int index) const;
};
由於空間原因沒有發佈實現文件,但是我在必要時發佈了單個函數。
我試圖改變List(const List& aList);
到List(const List<T>& aList);
,但並沒有真正改變任何東西。模板語法讓我困惑>。 <
編譯爲我好,當我嘲笑的功能與空機構。該錯誤必須在其他地方。另外,不要將模板代碼放在.cpp文件中,編譯器需要知道需要實例化的確切代碼,所以它需要放在一個頭文件中。 – Xeo 2011-04-27 04:12:09
它使用g ++編譯我(在鏈接時模仿未定義的函數)。 – 2011-04-27 04:13:40
您是否在頭文件的單獨文件中實現? – jonsca 2011-04-27 04:14:05