条款36:绝对不要重新定义,继承而来的non-virtual函数
2015-10-18 16:56
399 查看
重新定义一个继承而来的non-virtual函数可能会使得导致当函数被调用的时候,被调用的函数不是取决于调用的函数究竟属于的对象,而是取决于调用函数的指针或者引用的类型。
所以一般的说主要有两种观点在这方面:
1. 如果D非要重新继承而来的函数的话,那么说明他们的关系可能是不适合public继承的,因为public继承的实质是is-a, 那么也就不会出现前面那种所说的情况
2. 另一方面,这个函数可能声明的也有问题,作为virtual函数可能更加适合他的本意
所以一般的说主要有两种观点在这方面:
1. 如果D非要重新继承而来的函数的话,那么说明他们的关系可能是不适合public继承的,因为public继承的实质是is-a, 那么也就不会出现前面那种所说的情况
2. 另一方面,这个函数可能声明的也有问题,作为virtual函数可能更加适合他的本意
相关文章推荐
- BZOJ1037 生日聚会
- 剑指offer第二十一题【栈的压入、弹出序列】c++实现
- CSS一些小总结——个人向
- <LeetCode><Easy> 111 Minimum Depth of Binary Tree
- Memcached 服务器端命令
- 条款35:考虑virtual函数以外的其他选择
- Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)
- 企业微信公众平台订阅号运营11大技巧
- $().each() 与 $.each()解析
- STM32F4——内存管理
- Git分支管理策略
- iOS开发注意⚠ 持续更新
- 三、RemoteViews
- 九度OJ 1037:Powerful Calculator(强大的计算器) (大整数运算)
- Linux软连接和硬链接
- 九度OJ 1037:Powerful Calculator(强大的计算器) (大整数运算)
- 问世间最大的乐趣是什么?
- JS编程去掉注释部分
- 51nod 1423:最大二“货”
- PIC单片机ISP下载外围链接电路