【发布时间】:2012-04-01 19:47:44
【问题描述】:
我正在构建一个包含结构 TreeNode 的通用二叉树。我实现了一个函数 rootPtr(),它返回指向树根的指针。 binarytree.h 简单如下:
template <class T>
class BinaryTree {
public:
typedef struct TreeNode {
T item;
TreeNode *leftChildPtr; // pointer to left child
TreeNode *rightChildPtr;
public:
TreeNode(const T& nodeItem,
TreeNode *left,
TreeNode * right)
: item(nodeItem), leftChildPtr(left), rightChildPtr(right) {
}
TreeNode(const T & nodeItem)
: item(nodeItem) {
leftChildPtr = NULL;
rightChildPtr = NULL;
}
} TN; //end treenode
//Function prototype
TN* rootPtr() const;
private:
TN *root;
} //end binarytree
这是来自 binarytree.cpp 的 sn-p,它会导致错误。
template <class T>
BinaryTree<T>::TN* BinaryTree<T>::rootPtr() {
return root;
}
编译器报错错误:预期的构造函数、析构函数或'*'标记之前的类型转换
我以前见过这个错误,并通过使用 BinaryTree:: 处理它,但这次因为它是通用的,我不知道我该怎么办。任何帮助将不胜感激。
【问题讨论】:
标签: c++ class generics struct tree