有没有人知道这个错误是如何发生的?我用 C++ 制作了一个 LinkedList 模板,在我的主要方法中我有这段代码:
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);
但这并没有真正改变任何事情。模板语法让我困惑 >.<
最佳答案
您确定您的 List 模板类不在不同的命名空间中吗?
您是否尝试过将您的模板类重命名为唯一的名称以确保您正在实例化您认为的类?
关于c++ - `List' 不是模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799229/