C++编程规范之38:实施安全的覆盖
来源:互联网 发布:php 在线拍卖系统源码 编辑:程序博客网 时间:2024/05/01 16:22
摘要:
负责任地进行覆盖:覆盖一个虚拟函数时,应该保持可替换性;说得更具体一点,就是要保持基类中函数的前后置条件。不要改变虚拟函数的默认参数。应该显式地将覆盖函数重新声明为virtual.
虽然派生类通常会增加更多状态,但他们所建模的是其基类的子集而非超集。在正确的继承关系中,派生类所建模的是更一般的基础概念的一个特例。
定义一个可能的失败的派生覆盖函数,只是在基类没有声明换做总是成功的时候,这个定义才是正确的。在覆盖的时候,永远不要修改默认参数。它们不是函数签名的一部分,客户代码将因为不知情而将不同参数传递给函数,具体要传递给哪一个参数,将取决于它们具有层次结构中那个节点的访问权限。
对于调用者而言,同一个对象的成员函数会不加提示地根据自己访问所使用的静态类型而接受不同参数,这可能是一件非常令人奇怪的事情。在覆盖函数时,应该添加冗余的virtual.这能够更清楚地想阅读代码的人表达自己的意图。谨防不小心在基类中隐藏了重载函数。关于重载、覆盖、隐藏的概念区分详见:http://blog.csdn.net/longshengguoji/article/details/17691913
1 0
- C++编程规范之38:实施安全的覆盖
- c/c++的编程规范
- 安全级 C语言编程规范(草稿)
- CERT Secure Coding Standard — C语言安全编程规范
- C++编程规范之类型安全(读书笔记)
- (五)阿里巴巴JAVA编程规范之安全规约
- C语言之程序编程规范
- misra c规范作为工业标准的C编程规范
- 《安全电子文件密码应用规范》将实施
- C/C++安全编程规范及一些代码静态安全检测工具
- C++编程规范 类型安全
- 【数据库】编程规范与安全
- 常见C++安全编程规范
- MISRA C 2004安全规范
- [ZT]MISRA的C编程规范
- 单片机C语言的编程规范
- Object—C的规范编程
- C编程规范的心得分享
- 免费WORD替代品
- 期初余额、期后事项审计与审计报告案例
- 无论快乐与悲伤,最后都将成为回忆
- 网络攻击篇
- Java 7之基础类型第4篇 - Java字符类型
- C++编程规范之38:实施安全的覆盖
- [LeetCode] Single Number II
- Linux下配置JDK
- WITH AS 优化逻辑读
- 面向接口编程的点
- 事件间关系
- CMarkUp使用简介
- PBR (policy-Based routing,策略路由)总结
- android中scrollview嵌套HorizontalScrollView导致横向滑动卡顿现象解决