2
|
PypeBros vinay hunachyal · 技术社区 · 14 年前 |
![]() |
1
10
拥有一个带有非虚拟析构函数的公共基类是安全的
但是
如果有人用
为了处理这个问题,而不必对用户施加这样的奇怪条件,最好的建议是,对于C++中的公共基类,析构函数应该是公共的和虚拟的,或者是保护的和非虚拟的。
http://www.gotw.ca/publications/mill18.htm
,准则4)。自从
如果你想在向量上定义一些额外的操作,那就是C++中的自由函数。有什么了不起的
不过,你还是要小心。C++标准不能保证哪些功能
总之,
当然,如果使用私有继承,那么就不能通过
|
![]() |
2
16
|
![]() |
3
1
也许用合成代替继承?你没有说为什么你要扩展向量,所以我不知道这是不是一个选择。 |
![]() |
4
1
可能吧。
这样做而不是从
2) 它更符合“STL方式”的做事方式。这使得了解STL但可能不了解您的特殊类(其行为与STL集合不同)的人更容易在将来进行维护。
3) 它更具可扩展性。一个正确编写的函子并不关心它作用于什么样的集合。如果有一天你因为某种原因想使用
4) 总体来说,它的设计比较简单,因此不易受到缺陷的影响,也更易于维护。 |
|
Julia · 矢量中相加为总和S的值的数量 2 年前 |
![]() |
C_Rod · 在模板方法中确定STL容器中项目的数据类型 3 年前 |
![]() |
quantumwell · 将空向量放入std::map() 7 年前 |
![]() |
OutOfBound · 对未初始化内存使用算法的优点 7 年前 |
![]() |
DarthRubik · 在使用列表删除之后,迭代器如何不无效 7 年前 |