【发布时间】:2021-05-08 07:49:31
【问题描述】:
我为我的容器构建了一个迭代器类,看起来像这样
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 ----------------------^
我最好的理解是,我将我的类的一个实例传递给我的 then 类的另一个实例,然后在另一个中访问一个私有数据成员。这是允许的,因为它们是同一类的实例还是我遗漏了什么?
Data() 只是从容器中返回数据。
【问题讨论】:
-
我还需要为我的解引用运算符返回一个引用。为了引用它,我是否需要存储此 data() 的返回值的副本?
-
你不是在找
friend吗?此外,您没有显示minimal reproducible example。 -
和edit 包含更多信息的问题。
-
@user202729 我不确定要添加什么。我的代码按原样工作,我想知道为什么。操作员工作得很好。
-
一个类的任何实例都可以操作它可以处理的同一类的任何其他实例的
privete成员。binary_tree_iterator<T>可以看到每个binary_tree_iterator<T>的内部