“列表”不是模板

时间:2011-04-27 04:08:54

标签: c++ templates

有没有人对此错误的发生方式有任何了解?我用C ++创建了一个LinkedList模板,在我的main方法中我有这个代码:

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);,但这并没有真正改变任何内容。模板语法让我感到困惑&gt;。&lt;

3 个答案:

答案 0 :(得分:1)

您确定您的List模板类不在不同的命名空间中吗?

您是否尝试将模板类重命名为独特的类,以确保您实例化您认为的类?

答案 1 :(得分:0)

在我的项目中,我声明这样的列表以避免出现错误

    using namespace std;
    #include <list>

答案 2 :(得分:-2)

您是否有可能在.cpp文件中编写模板代码?

我要走这条路:

Not posting the implementation file

模板代码只能在.h文件中,不能有“实现文件” 原因很复杂,因为它们很愚蠢:)