2014-02-07 82 views
1

我的工作被称为“BinarySearchTree”一个子类,从它的超类“二叉树”子类模板错误(C++):

二叉树继承:“错误‘根’在此范围内未声明”。^h

template <class T> 
class BinaryTree 
{ 

public: 
    BinaryTree() { root = NULL; } 

protected: 
    BTNode<T> *root; // Root node (NULL if the tree is empty) 
}; 

BinarySearchTree.h

template <class T> 
class BinarySearchTree : public BinaryTree<T> 
{ 
public: 
    BinarySearchTree(); // call super's 

    bool insert(const T& elem); 
    bool insertHelper(BTNode<T> *&, T); 
}; 

template<class T> 
BinarySearchTree<T>::BinarySearchTree() : BinaryTree<T>() 
{ 
    root = NULL; // <---- error: In constructor 'BinarySearchTree<T>::BinarySearchTree()' 
          //: BinarySearchTree.h:85: error: ‘root’ was not declared in this scope 
}; 

我知道它与范围不被认可的根做的,但我要如何解决这个问题?

回答