【发布时间】:2020-05-06 08:36:28
【问题描述】:
我正在尝试创建一个设置 LinkedList 根节点的函数。但是,当我运行以下代码时:
#include <iostream>
using namespace std;
template <typename K>
struct Node {
Node<K>* next;
const K value;
};
template <typename K>
Node<K>* root = NULL;
template <typename K>
void SetRoot(const K &key) {
Node<K> new_node = Node<K> {NULL, key};
root = &new_node;
}
int main(int argc, char *argv[])
{
Node<int> n1 = Node<int> {NULL, 48};
SetRoot(n1);
return 0;
}
我在root = &new_node; 行收到此错误:
错误:在“=”标记根 = &new_node; 之前缺少模板参数
但是,new_node 确实具有结构 Node 的所有预期参数。
【问题讨论】:
-
请注意,使用您的代码,您只能按类型拥有一个列表...
-
您之前是不是问过关于模板
main的问题?我可以建议获得a good book about templates 吗?模板是一个高级主题,如果没有扎实的基础,它们可能会让人头疼。 -
基于您对
&的使用,我建议您首先实现一个完全没有模板的链表,以便学习基础知识。