1
假设像遍历复杂的内部容器
class Foo
{
private:
ANonTrivialContainer bar;
OtherData baz;
};
ANonTrivialContainer的迭代器的一类是双向的。从外面,我想用酒吧的内容做东西。什么是prefferable的
- 提供beginBar()和相应的endBar()返回迭代器ANonTrivialContainer像Allowing access to container objects in C++接受的答案。这将起作用,但向调用者公开内部细节(因为它需要对下层类进行显式调用)。
- 提供将所有调用转发给内部迭代器的自定义迭代器。 beginBar和endBar现在返回自定义迭代器。
- 提供一个foreach方法,它采用一个回调类