2014-02-07 114 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 
}; 

我知道它與範圍不被認可的根做的,但我要如何解決這個問題?

回答