我正在实现一个与this one几乎相同的二叉树类。但是,在我的任务中,node
结构必须是模板化结构。因此我将struct node
更改为:
template <typename T>
class node {
public:
T data;
node<T> *left, *right;
}
到目前为止一直很好,直到我将node
个实例添加到btree
作为成员变量:
class btree {
// ......
private:
template <typename T>
node<T> *root = NULL; // error
}
错误消息说
C3857:不允许使用多个模板参数列表。
我尝试将root = NULL
移至btree
的默认构造函数,但也无效。
答案 0 :(得分:2)
您不能拥有模板化变量声明。无法指定用于变量的类型。您可以将btree
设为模板,并将该类型用于node
template<typename T>
class btree {
// ......
private:
node<T> *root = NULL; // error
}
或在btree
class btree {
// ......
private:
node<some_type> *root = NULL; // error
}