C++ 访问数据成员I';不允许进入

C++ 访问数据成员I';不允许进入,c++,class,iterator,C++,Class,Iterator,我为容器构建了一个迭代器类,如下所示 template <typename T> class binary_tree_iterator { private: binary_tree<T>* tree; public: ... bool operator!=(const binary_tree_iterator& rhs) const {return tree->data() != rhs.tree->data();} };

我为容器构建了一个迭代器类,如下所示

template <typename T> 
class binary_tree_iterator {
private:
    binary_tree<T>* tree;
public:
    ...
    bool operator!=(const binary_tree_iterator& rhs) const {return tree->data() != rhs.tree->data();}
};                            
                                                      This thing ----------------------^
模板
类二叉树迭代器{
私人:
二叉树*树;
公众:
...
bool操作符!=(const binary_tree_iterator&rhs)const{return tree->data()!=rhs.tree->data();}
};                            
这个东西----------------------^
我最好的理解是,我正在将我的类的一个实例传递给我的then类的另一个实例,然后访问另一个实例中一个实例的私有数据成员。这是允许的,因为它们是同一类的实例还是我遗漏了什么


Data()只从容器返回数据。

私有方法/字段对对象实例不是私有的,而是对类本身私有的。因此,您可以将一个Foo传递到另一个Foo实例并访问所有内容。

我还需要为我的解引用操作符返回一个引用。我是否需要存储此data()返回值的副本以引用它?您不只是在寻找朋友吗?此外,您没有显示一个。以及包含更多信息的问题。@user202729我不确定要添加什么。我的代码按原样工作,我想知道为什么。操作符工作得很好。一个类的任何实例都可以对它可以得到的同一个类的任何其他实例的
privete
成员进行操作
binary\u tree\u iterator
可以看到每个
binary\u tree\u iterator的内部