模板和BST

时间:2014-11-14 23:00:26

标签: c++ templates syntax binary-search-tree

模板声明是:

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;
}

1 个答案:

答案 0 :(得分:0)

在定义成员函数时(在类之外),您需要将成员函数定义限定为Node<DataType>::BinNode::treeheight(…) {…},因为BinNodeNode的嵌套类。