использование шаблона класса требует списка ссылок списка аргументов шаблона

0

Я пытаюсь получить связанный список, и вот мой код
node.h

template<class Node_entry>
struct Node{
    Node_entry entry;
    Node<Node_entry> *next;

    Node();
    Node(Node_entry entry,Node<Node_entry>* add_on=NULL);
};

template<class Node_entry>
Node<Node_entry>::Node()
{
    next=NULL;
}

template<class Node_entry>
Node<Node_entry>::Node(Node_entry item,Node<Node_entry>* add_on)
{
    entry=item;
    next=add_on;
}

Queue.h

#include "node.h"

enum Error_code{
    success,overflow,underflow
};

template<class Queue_entry>
class Queue {
public:
    Queue();
    bool empty() const;
    Error_code append(const Queue_entry &item);
    Error_code serve();
    Error_code retrieve(Queue_entry &item)const;
    int size()const;
    //Safety features for linked structures
    ~Queue();
    Queue(const Queue<Queue_entry> &original);
    void operator = (const Queue<Queue_entry> &original);
protected:
    Node<Queue_entry> *front, *rear;
};

и тогда у меня возникла проблема в следующем коде:

template<class Queue_entry>
Error_code Queue<Queue_entry>::append(const Queue_entry &item)
{
    Node<Queue_entry> *new_rear=new Node(item);
    if(new_rear==NULL) return overflow;
    if(rear==NULL) front=rear=new_rear;
    else{
        rear->next=new_rear;
        rear=new_rear;
    }
    return success;
}

Выходит компилятор. Код:

Node<Queue_entry> *new_rear=new Node(item);

ошибка C2955: "Узел": для использования шаблона класса требуется список аргументов шаблона

  • 1
    Звучит довольно понятно. Это говорит о том, что вы забыли предоставить список аргументов шаблона (т.е. что-то в форме <...> ).
  • 0
    Спасибо! Не могли бы вы сказать мне, как я могу изменить свой код, чтобы сделать его работоспособным? У меня есть некоторые проблемы с этим.
Теги:
templates

1 ответ

1

Вы забыли параметр шаблона во втором использовании Node. Строка, о которой идет речь, должна читать

Node<Queue_entry> *new_rear=new Node<Queue_entry>(item);
  • 0
    Спасибо! Это проблема.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню