虚函数的4条规则
来源:互联网 发布:怎么样提高淘宝销量 编辑:程序博客网 时间:2024/05/01 21:49
虚函数的4条规则
分类: C++再学习系列 2009-07-02 21:32274人阅读 评论(0)收藏 举报
c++编译器优化
虚函数的4条规则
对于常规的基类函数来说:
1 尽量使用非虚拟接口模式(NVI)让接口函数成为非虚拟的.
2 尽量让虚函数成为私用的.
3 只有当派生类需要调用基类对某个虚函数的实现时,才把虚函数声明为保护的.
4 基类的析构函数应该要么为共有虚函数,要么为保护虚函数.
说明: 1,2两条将虚共有接口的两个职责进行了很好的分解,遵守了单一职责原理.
第4条说明了,如果要使用多态(指针调用),那么基类的析构函数一定要为虚函数;如果基类本身的设计不是处于多态考虑的话,那么就应该将析构函数设为保护类型.这样可以防止出现使用指针的析构(基类无法被直接析构), 只有派生类才能析构基类.
1) 非虚接口模式(NVI)的说明:基类对接口具有完全控制权,很方便在一个单一的、可复用的地方实施(enforce)接口的前条件跟后条件、插入一些设备或做一些类似的事情。更好的是实现接口和实现分离;让基类在变化面前更稳定。条件检查可以仅在调式期有效,这更易于控制。如果非虚函数仅有唯一一行转发调用,编译器会做内联优化,没有效率问题。
- C++虚函数的4条规则
- 虚函数的4条规则
- [C++再学习系列] 虚函数的4条规则
- 虚函数的规则
- 模板函数需要注意的两条重载规则
- javascript的函数上下文this四条规则
- 项目经理的10条规则
- 项目经理的10条规则
- 电子邮件的10条规则
- Yahoo的Yslow23条规则
- 例解红黑树的5条规则
- 项目经理的十二条规则
- PHP应用程序:不能违反的4条安全规则
- 成为更优秀程序员的4条黄金规则
- 炒股人士须谨记的4条规则和5条操作技巧
- C++中的虚函数的隐藏规则
- C++中的虚函数的隐藏规则
- C++中的虚函数的隐藏规则
- Android服务之Service(其一)
- DOM学习练习
- 【昊昊带你学】常见的几种排序1
- php拓展变成—— hello world
- 字符,字节和编码
- 虚函数的4条规则
- apache模块开发之content hander,读取配置,输出内容替换过滤器,url域名替换过滤器
- js实现图片变换
- 【昊昊带你学】常见的几种排序2(qsort)
- JSPDirectives
- 第六堂课后作业
- 黑马程序员——java网络编程
- spin_lock_irqsave关中断后,为什么要再禁止抢占
- 九宫格遍历(dfs)深搜图示