模板声明是:
template <typename DataType>
class BST
我不断得到的错误是 bst.h(101):参见类模板实例化&#39; BST :: BinNode&#39;被编译 bst.h(183):参见类模板实例化&#39; BST&#39;正在编制
我认为我的语法可能有误,但我不确定它是什么。有人可以把我推向正确的方向。我只是无法编译。类BinNode是主类BST的私有类。错误所指的行也是DataType BinNode :: treeheight(BinNode * p)
private:
/***** Node class *****/
class BinNode
{
public:
DataType data;
BinNode * left;
BinNode * right;
DataType treeheight(BinNode * p);
template <typename DataType>
DataType BinNode::treeheight(BinNode * p)
{
if(p != 0)
{
int heightl = treeheight(p->left);
int heightr = treeheight(p->right);
}
if(heightl > heightr)
return heightl;
else
return height r;
}
答案 0 :(得分:0)
在定义成员函数时(在类之外),您需要将成员函数定义限定为Node<DataType>::BinNode::treeheight(…) {…}
,因为BinNode
是Node
的嵌套类。