我正在尝试实现一个红黑树,并且我已经创建了节点,每个节点都包含一个左子节点,右子节点和父节点,在我的redBlackNode类中存储为受保护的数据成员。在我的插入函数中,我需要使用node-> _left-> _parent等访问每个节点受保护的成员,如其左子节点或其父节点。但是,我的编译器抱怨
bst.h:77:29: error: ‘Node<int, int>* Node<int, int>::_left’ is protected
rbbst.h:160:3: error: within this context
bst.h:77:46: error: ‘Node<int, int>* Node<int, int>::_parent’ is protected
rbbst.h:160:3: error: within this context
我如何克服这个问题?
答案 0 :(得分:0)
我的建议: 1.将类节点重新编码为结构; 2.添加可访问的pubilic成员乐趣,返回对这些数据成员的引用,你应该 将数据成员设为私有;
最后,请原谅我可怜的英语。 这是我在这个网站上的第一个答案。(●&#39;◡&#39;●)
答案 1 :(得分:0)
您还可以使用&#34;朋友&#34;声明一个特定的功能,以便访问班级的私人会员。关键字。
答案 2 :(得分:0)
您是否正在继承主类。请记住,继承是C ++,只有子类可以访问受保护的协议。清除这一点尝试公开方法。请显示错误行和代码以获取更多帮助。