动多态与静多态
2016-01-08 21:27
169 查看
表现动多态的函数只处理特定类系列的对象,一个类层次的结构,而且基类必须是多态类,一个类系列配一个表现多态的函数。而模板表现的多态不是在运行中进行类型识别的,而是在编译时刻进行类型识别的,因而模板实现的多态为静多态。
对于抽象编程来说,或许使用动多态更好一点,他可以将类实现的源代码彻底隐蔽,无需提供给使用类的用户,以实现软件的保护。而静多态编程的代码由于程序结构的影响,还必须放在头文件中作为模板使用之前声明和定义。
从性能来看,静多态由于动多态,因为动多态是基于虚函数实现的机制,有间接的访问迂回代码,而静多态没有这种开销。
从错误检测来说,一个实体如果不具备某种操作,而程序又动态的绑定该操作,则必须在运行中才可以发现错误。而静多态编程在编译时检测类型匹配的,若果在实例化过程中发现一个实体没有的操作,会及时报错。
对于抽象编程来说,或许使用动多态更好一点,他可以将类实现的源代码彻底隐蔽,无需提供给使用类的用户,以实现软件的保护。而静多态编程的代码由于程序结构的影响,还必须放在头文件中作为模板使用之前声明和定义。
从性能来看,静多态由于动多态,因为动多态是基于虚函数实现的机制,有间接的访问迂回代码,而静多态没有这种开销。
从错误检测来说,一个实体如果不具备某种操作,而程序又动态的绑定该操作,则必须在运行中才可以发现错误。而静多态编程在编译时检测类型匹配的,若果在实例化过程中发现一个实体没有的操作,会及时报错。
相关文章推荐
- LED跑马灯_20160107
- Linux下MySQL中文乱码
- 2016/1/9:深度剖析安卓Framebuffer设备驱动
- 2016/1/9:深度剖析安卓Framebuffer设备驱动
- 2016/1/9:深度剖析安卓Framebuffer设备驱动
- 开始看书
- 0108练习一维数组
- 软件工程M1/M2总结
- 使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,
- 傅里叶变换的推导
- HDU 3033 分组背包
- 初次尝试写技术blog
- [面试]排列组合与概率计算(一)
- tyvj 1018 阶乘统计 和 1037 阶乘统计2
- mysql安装start service步骤出错问题解决
- 新手指导:教你如何查看识别hadoop是32位还是64位
- RPM命令使用详细版
- Tiny server:小型Web服务器
- Linux登录用户查看及相应操作
- oracle中使用存储过程实现分页