温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++中编译器多态与运行期多态的优缺点是什么

发布时间:2021-11-24 13:41:03 来源:亿速云 阅读:543 作者:小新 栏目:编程语言

这篇文章主要介绍C++中编译器多态与运行期多态的优缺点是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

运行期多态

    运行期多态的设计思想要归结到类继承体系的设计思想上去,对于相关功能的对象的集合,我们总希望能够抽象出他们共有的功能的集合,在基类中将这些功能声明为虚接口(虚函数),然后由子类继承类去重写这些虚接口,以实现子类特有的功能。

总结:运行期多态通过虚函数发生于运行期

优点

  1. 设计中重要的特性,对客观世界的直觉认识

  2. 能够处理同一继承体系下异质类集合

缺点

  1. 运行期间进行虚函数的绑定,提高了程序的运行时开销

  2. 庞大的类继承层次,对接口的修改易影响类继承层次

  3. 由于虚函数在运行期间确定,所以编译器无法对虚函数优化

编译器多态

     对于模板参数而言,多态是通过模板具体和函数重载实现的,不同的模板具体导致调用不同的函数,这就是编译器多态。相较于运行期多态,实现编译器多态之间的类不需要继承体系,约束他们的是隐式接口。

缺点

  1. 代码调试带来困难

  2. 无法实现模板的额分离编译,当工程很大时,编译时间不可小觑

  3. 无法处理异质类对象的集合

名词解释

函数重写:当子类定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写(也称覆盖)了父类的这个函数。

以上是“C++中编译器多态与运行期多态的优缺点是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI