«Список» не шаблон - PullRequest
2 голосов
/ 27 апреля 2011

Кто-нибудь знает, как происходит эта ошибка?Я создал LinkedList шаблон в 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); но это ничего не изменило.Синтаксис шаблонов смущает меня>. <</p>

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Вы уверены, что ваш класс шаблона List не находится в другом пространстве имен?

Вы пытались переименовать свой класс шаблона в нечто уникальное, чтобы убедиться, что вы создаете экземпляр класса, которым вы себя считаете?

0 голосов
/ 01 июня 2011

Возможно ли, что вы написали код шаблона в файле .cpp?

Я собираюсь перейти к следующей строке:

Not posting the implementation file

Код шаблона может быть только в.h файл, не может быть никакого "файла реализации".
Причины столь же сложны, как и глупы:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...