扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍C++中编译器多态与运行期多态的优缺点是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联公司从2013年开始,先为金昌等服务建站,金昌等地企业,进行企业商务咨询服务。为金昌企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
运行期多态
运行期多态的设计思想要归结到类继承体系的设计思想上去,对于相关功能的对象的集合,我们总希望能够抽象出他们共有的功能的集合,在基类中将这些功能声明为虚接口(虚函数),然后由子类继承类去重写这些虚接口,以实现子类特有的功能。
总结:运行期多态通过虚函数发生于运行期
优点
设计中重要的特性,对客观世界的直觉认识
能够处理同一继承体系下异质类集合
缺点
运行期间进行虚函数的绑定,提高了程序的运行时开销
庞大的类继承层次,对接口的修改易影响类继承层次
由于虚函数在运行期间确定,所以编译器无法对虚函数优化
编译器多态
对于模板参数而言,多态是通过模板具体和函数重载实现的,不同的模板具体导致调用不同的函数,这就是编译器多态。相较于运行期多态,实现编译器多态之间的类不需要继承体系,约束他们的是隐式接口。
缺点
代码调试带来困难
无法实现模板的额分离编译,当工程很大时,编译时间不可小觑
无法处理异质类对象的集合
名词解释
函数重写:当子类定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写(也称覆盖)了父类的这个函数。
以上是“C++中编译器多态与运行期多态的优缺点是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流