And*_*w T 2 c++ containers stl interface
考虑一下代码:
class Foo { // ... std::vector<Bar> bars; };
我应该暴露整个容器,或者我应该公开typedef倒是迭代器类,并用适配器的方法(begin(),end(),size(),和任何我需要)?
typedef
begin()
end()
size()
如果答案取决于,应该如何做出决定?
Geo*_*che 8
除非绝对需要公开容器,否则只暴露迭代器或迭代器范围(以及typedefed迭代器类型).
这样可以避免在更改实现细节时破坏其他代码,并遵循信息隐藏/封装的指导原则.
归档时间:
15 年,12 月 前
查看次数:
1023 次
最近记录:
15 年,11 月 前