我正在尝试创建一个继承自 Tree 类的二叉搜索树类,但编译器表示 Tree 类的数据成员未在 BST 类中继承。
template <class T>
class Tree {
protected:
class Node {
public:
T value;
Node * left;
Node * right;
};
Node * root;
public:
Tree() : root(NULL) { }
};
Run Code Online (Sandbox Code Playgroud)
template <class T>
class SearchTree : public Tree<T> {
public:
void foo();
};
template <class T>
void SearchTree<T>::foo() {
Node * node = NULL; //error- Unknown type name 'Node'
root = node; //error- Use of undeclared identifier 'root'
}
Run Code Online (Sandbox Code Playgroud)
我希望能够从基类“Tree”访问节点和根。为什么编译器说它们未声明且未知?