我正在写一个跟随此标题的树:
class TreeLetters {
private:
Letter* root;
public:
// ...
Letter* Root () const;
class iterator {
private:
Letter* it;
public:
iterator ();
iterator (Letter* letter);
iterator (const iterator & other);
iterator begin ();
iterator end ();
// ...
};
};
就这么简单,迭代器的begin()
方法出现错误,如下所示:
TreeLetters::iterator TreeLetters::iterator :: begin () {
return iterator(root); // invalid use of non-static data member 'TreeLetters:root'
}
我一直在阅读一些老问题,而对我来说至少解决了这个问题的唯一解决方案是制作根static
,这带来了更大的问题:一棵树。
我尝试制作根protected
并将friend class TreeLetters
添加到迭代器的私有成员,但是没有任何效果。我也在使用C ++ 11。
我在做什么错了?