小编Ezr*_*eck的帖子

派生类不从基类继承数据成员

我正在尝试创建一个继承自 Tree 类的二叉搜索树类,但编译器表示 Tree 类的数据成员未在 BST 类中继承。

树.h

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)

BST.h

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”访问节点和根。为什么编译器说它们未声明且未知?

c++ inheritance inner-classes

2
推荐指数
1
解决办法
807
查看次数

标签 统计

c++ ×1

inheritance ×1

inner-classes ×1