模板语法错误

Template syntax error

本文关键字:错误 语法      更新时间:2023-10-16

编辑:修复错误

这是我第一次使用模板,我得到讨厌的语法错误。我不知道错误在哪里,因为编译器告诉我,我错过了一个分号,后面跟着数百个错误。然而,一切似乎都很好。我几乎可以肯定没有分号遗漏。

谁能帮我大海捞针?PS错误发生在List的构造函数定义上,并且在'<'之前缺少';'(即下面的代码)
template <typename T>
class Node
{
template <typename T>
friend class List<T>;
public:
//Default constructor
Node();
//Copy constructor
Node(const Node<T> & copy);
//Overloaded assignment operator
Node<T> &operator=(const Node<T> & rhs);
//Destructor
~Node();
//Methods
T CreateNode(const T & T);
T &getData();
private:
//Data members
T data;
Node * mNext;
};

我不能保证这是唯一的问题,但这确实看起来很可疑:

T &List<T>::Front() const
T &List<T>::Back() const
void Purge();

我猜,您打算声明三个独立的函数,在这种情况下,它缺少几个分号,应该看起来更像这样:

T &List<T>::Front() const;
T &List<T>::Back() const;
void Purge();

…或者,很可能:

T &Front() const;
T &Back() const;
void Purge();

找到错误。它在我的node.h文件中。代码是

friend class List<T>;

我移除了,它工作。:)