节点:使用类模板需要模板参数列表
Node : Use of class template requires template argument list
我有一个节点类,可以存储任何类型的数据。
这是我现在的代码。我得到一个错误C2059:语法错误:'<'在朋友班名单上;
template <typename T>
class Node{
protected:
T info;
Node *urm;
Node *ant;
public:
int get_info() { return info; }
void set_info(T a) { info = a; }
friend class List<T>;
};
template <typename T>
class List{
protected:
Node<T> *p, *u;
public:
};
Node
是一个类模板,它在实例化时需要一个模板参数。所以你必须指定它,比如
Node<int> *p, *u; // Nodes of integers
^^^^^
instantiate the template with int
由于Node
是一个类模板,我建议将List
也作为类模板,否则List
将失去操纵任意类型的能力
template <typename T>
class List{
protected:
Node<T> *p, *u;
public:
};
更新(但请不要更改您的代码并实时提问,最好问一个新的(
您还应该提供List
的前向声明,否则在Node
中声明friend
时它不可见。换句话说,把这行
template<typename T>
class List; // forward declaration
在CCD_ 8的声明之上。
试试这个:
template<typename T>
class List{
protected:
Node<T> *p, *u;
public:
};
您需要向Node
提供一个模板参数列表来创建其对象。
相关文章:
- 概念中的cv限定符需要表达式参数列表
- 在没有参数列表的情况下使用模板名称"Event"无效,模板问题
- 错误 没有与参数列表匹配的重载函数"getline"实例
- std::vector 没有重载函数的实例与参数列表匹配
- 模板参数列表中的 false 在模板初始化期间计算为什么?
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- 构造函数/函数声明参数列表中的统一初始化
- 模板化检查是否存在带有参数列表的类成员函数?
- 如何将类成员方法的参数列表自动填充写入可变参数?
- 带有整数的变量参数列表
- 转发变量参数列表以模拟 std::thread
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- C++-将具有引用的长参数列表重构为结构
- 缺少别名模板C++参数列表
- C++如果两个模板函数都与参数列表匹配,将调用哪个模板
- "extern"声明以及带有和不带参数列表的类模板实例的后续定义
- 使用显式模板参数列表和 [temp.arg.explicit]/3 的函数调用的演绎失败
- 没有函数模板的实例与我不知道为什么的参数列表匹配
- 我可以使用宏自动构建参数列表吗?
- 类成员函数参数列表是否可以依赖于模板参数?