我正在实现一个与 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: multiple template parameter lists are not allowed.
我试图将 root = NULL
移动到 btree
的默认构造函数,也不起作用。
最佳答案
您不能有模板化变量声明。无法指定用于变量的类型。您可以使 btree
成为模板并将该类型用于 node
template<typename T>
class btree {
// ......
private:
node<T> *root = NULL; // error
}
或者在btree
class btree {
// ......
private:
node<some_type> *root = NULL; // error
}
关于c++ - 类属性包括模板类的实例(错误 C3857),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35230017/