C++ 节点:使用类模板需要模板参数列表

C++ 节点:使用类模板需要模板参数列表,c++,templates,C++,Templates,我有一个节点类,它可以存储任何类型的数据 这是我现在的代码。我得到一个错误C2059:语法错误:“节点是一个类模板,它在实例化时需要一个模板参数。所以你必须指定它,比如 Node<int> *p, *u; // Nodes of integers ^^^^^ instantiate the template with int 更新(但请不要更改您的代码和现场提问,最好问一个新的) 您还应该提供列表的转发声明,否则在节点中声明好友时,转发声明不可见。换句话说,把这条线

我有一个节点类,它可以存储任何类型的数据


这是我现在的代码。我得到一个错误C2059:语法错误:“
节点
是一个类模板,它在实例化时需要一个模板参数。所以你必须指定它,比如

Node<int> *p, *u; // Nodes of integers
    ^^^^^
    instantiate the template with int
更新(但请不要更改您的代码和现场提问,最好问一个新的)

您还应该提供
列表
的转发声明,否则在
节点
中声明
好友
时,转发声明不可见。换句话说,把这条线

template<typename T>
class List; // forward declaration
模板
类列表;//远期申报
节点的声明上方

尝试以下操作:

template<typename T>
class List{
    protected:
    Node<T> *p, *u;
    public:
};
模板
班级名单{
受保护的:
节点*p,*u;
公众:
};

您需要向
节点提供一个模板参数列表来创建其对象。

Hi!我得到了一个
“列表”:类模板现在已经声明为非类模板
。您是否也更改了友谊声明?@Shury如Maciej所述,使用
朋友类列表 No.No,友谊宣言应该如何改变?@ Surury你应该尝试找到一本好的C++书籍并阅读一些关于模板的内容。他们很重要,了解他们是如何工作的至关重要。另外,不要编辑问题和戏剧性地修改代码,因为最初的答案看起来完全脱离上下文。
template<typename T>
class List; // forward declaration
template<typename T>
class List{
    protected:
    Node<T> *p, *u;
    public:
};