假设一个类
class Foo
{
private:
ANonTrivialContainer bar;
OtherData baz;
};
ANonTrivialContainer 的迭代器是双向的。从外部,我想对 bar 的内容做一些事情。什么是可取的
- 提供 beginBar() 和相应的 endBar(),返回 ANonTrivialContainer 的迭代器,如 Allowing access to container objects in C++的公认答案。这将起作用,但会向调用者公开内部细节(因为它需要对底层类进行显式调用)。
- 提供将所有调用转发到内部迭代器的自定义迭代器。beginBar 和 endBar 现在返回自定义迭代器。
- 提供一个获取回调类对象引用的 forEach 方法