模板语法错误

时间:2013-05-22 03:53:26

标签: c++ templates

编辑:修正错误

这是我第一次使用模板并且遇到了令人讨厌的语法错误。我不知道错误在哪里,因为编译器告诉我我错过了一个分号,然后是数百个错误。然而,一切看起来都很好。我几乎可以肯定没有半冒号缺失。

任何人都可以帮助我在大海捞针中找到这根针吗? 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;
};

2 个答案:

答案 0 :(得分:1)

我不能保证这是唯一的问题,但这肯定是可疑的:

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();

答案 1 :(得分:0)

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

friend class List<T>;

我删除了它并且它起作用了。 :)