#ifndef TEMPLATE_LINKED_LIST
#define TEMPLATE_LINKED_LIST
template <class T>
class TempSLLNODE
{
public:
T info;
TempSLLNODE *next;
TempSLLNODE( T value, TempSLLNODE *ptr = NULL)
{
info = value;
next = ptr;
}
};
template <class T>
class TempSLL
{
public:
TempSLL()
{
head = tail = 0;
}
~TempSLL();
T isEmpty()
{
return head == 0;
}
void addToHead(T);
void addToTail(T);
T deleteFromHead(); // delete the head and return its info;
T deleteFromTail(); // delete the tail and return its info;
void deleteNode(T);
bool isInList(T) const;
private:
TempSLLNODE *head, *tail;
};
#endif
答案 0 :(得分:1)
TempSLLNODE
是模板,您需要使用类型:
更新
TempSLLNODE *head, *tail;
为:
TempSLLNODE<T> *head, *tail;
// ^^^
答案 1 :(得分:1)
你至少可以提到错误的一行。 为了将来参考,错误在于:
private:
TempSLLNODE *head, *tail;
您需要知道,当您从类模板中实例化变量时,您应该提及模板类型。实际上,对于用于实例化变量的每个模板类型,编译器会为您编译并生成类的代码,在此之前,编译器不会为类模板生成任何代码。
所以我想你的意思是:
private:
TempSLLNODE<T> *head, *tail;