编辑:修正错误
这是我第一次使用模板并且遇到了令人讨厌的语法错误。我不知道错误在哪里,因为编译器告诉我我错过了一个分号,然后是数百个错误。然而,一切看起来都很好。我几乎可以肯定没有半冒号缺失。
任何人都可以帮助我在大海捞针中找到这根针吗? 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;
};
答案 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>;
我删除了它并且它起作用了。 :)