【发布时间】:2017-01-26 10:14:07
【问题描述】:
我想创建一个平衡树。它适用于自定义结构,因此我想通过使用模板创建包含任何类型的树来改进我的平衡树。还有我的问题:
template <typename T>
struct Branch {
float index;
T value;
Branch *inf = nullptr;
Branch *sup = nullptr;
Branch *parent = nullptr;
};
因为它是一棵平衡树,每个分支都有一个索引,并且有一个指向其父分支的指针,以及指向它们的两个子分支的指针。 但我无法编译这段代码,我收到一个 C2079 错误,上面写着“Branch::value 使用了一个未定义的‘T’类”。 我使用VS2017RC。
==编辑==
我在我的班级树中找到了问题:
template <class T>
class Tree {
public:
/**/
private:
Branch<T>* _origine; //Initialized in constructor Tree() to nullptr
Branch<T> _branches[1000]; //Here is the error
/**/
};
所以问题是这个分支的静态数组,但我不知道如何初始化它......
感谢您的任何回答!
【问题讨论】:
-
请在您实例化模板的地方发布代码。
-
[OT]:
float index;我看起来很奇怪。 -
@molbdnilo 我用实例化在哪里的代码更新了问题
标签: c++ templates pointers struct