我正在尝试实现一个堆,但是我的一个函数出现了上述错误。
这是我的头文件:
template <typename E>
class Heap
{
private:
class Node {
E data;
Node * left;
Node * right;
};
Node root;
int length;
E * preorder(E * list, int length, Node node);
E * inorder(E * list, int length, Node node);
E * postorder(E * list, int length, Node node);
void clear(Node node); //Recursively clears all nodes and frees all pointers
public:
Heap();
Heap(E * list, int length);
~Heap();
Node * getRoot();
void buildHeap(E * list, int length);
E * returnList();
};
需要翻译的内容是关于IT技术的,涉及到特定函数(虽然其他函数也有类似错误)。错误出现在第二行。
template <typename E>
Node<E> * Heap<E>::getRoot() {
return &root;
}
typename
。或者如果他正在使用 C++11,你可以这样做:Heap<E>::getRoot() -> Node<E>*
。 - David Gtypename
。谢谢。我的常规做法是将其省略,看编译器是否会报错。 - Pete Becker