继承的虚函数缺省参数值不要重新定义的原因
来源:互联网 发布:成都家政公司办公软件 编辑:程序博客网 时间:2024/06/05 20:14
首先,缺省参数值只能作为函数的一部分而存在,只有两种函数可以继承:虚函数和非虚函数。
其次,重定义继承而来的非虚函数是一种错误,并不是说是语法上的错误,而是重定义非虚函数没有必要。
接下来,我们谈谈为什么不要重定义继承而来的虚函数的缺省参数值
在基类指针指向派生类对象或基类引用派生类对象时
1:虚函数是动态绑定,而缺省参数值是静态绑定。即虚函数是运行时确定类型,而缺省参数值是编译时就确定的。
2:如果重新定义的话,会使得程序调用基类的虚函数,这显然并不是你想要的结果。
c++坚持这样做的原因:
为了效率。如果缺省值被动态绑定,编译器就必须想办法为虚函数在运行时确定合适的缺省值,这将比现在采用的在编译阶段确定缺省值的机制更复杂。
阅读全文
0 0
- 继承的虚函数缺省参数值不要重新定义的原因
- 不要重新定义继承而来的缺省参数值
- 不要重新定义继承而来的缺省参数值
- 绝对不要重新定义继承而来的缺省参数
- 绝不重新定义继承而来的缺省参数值
- 绝不重新定义继承而来的缺省参数值
- 绝不重新定义继承而来的缺省参数值
- 不重新定义继承而来的缺省参数值
- 绝不重新定义继承而来的函数的缺省参数值
- 条款36-37绝不重新定义继承而来的non-virtual函数与缺省参数
- 关于C++虚函数默认参数的问题。Effective C++ 条款38: 决不要重新定义继承而来的缺省参数值
- 不要重新定义继承来的非虚函数
- 《Effective C++》37: 绝不重新定义继承而来的缺省的参数值
- 重新定义继承而来的缺省参数值导致的问题
- 决不要重新定义继承而来的缺省参数值
- 决不要重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- 条款37:绝不重新定义继承而来的缺省参数值
- 7.16
- PIC与非PIC的优缺点
- 《Drools7.0.0.Final规则引擎教程》第4章 4.2 lock-on-active
- 贪心好题(两种变量的贪心)poj3262 Protecting the Flowers
- stm32 GPIO 浮空输入的理解
- 继承的虚函数缺省参数值不要重新定义的原因
- observer
- js 数组
- 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器
- Spring AOP 增强类型
- Spring data redis-StringRedisTemplate 用法
- opengl es着色器原理和过程
- codeforces 625-D. Finals in arithmetic(构造+模拟)
- 07读书笔记之详解四种基本布局