您好,登录后才能下订单哦!
这篇文章主要介绍C++中编译器多态与运行期多态的优缺点是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
运行期多态
运行期多态的设计思想要归结到类继承体系的设计思想上去,对于相关功能的对象的集合,我们总希望能够抽象出他们共有的功能的集合,在基类中将这些功能声明为虚接口(虚函数),然后由子类继承类去重写这些虚接口,以实现子类特有的功能。
总结:运行期多态通过虚函数发生于运行期
优点
设计中重要的特性,对客观世界的直觉认识
能够处理同一继承体系下异质类集合
缺点
运行期间进行虚函数的绑定,提高了程序的运行时开销
庞大的类继承层次,对接口的修改易影响类继承层次
由于虚函数在运行期间确定,所以编译器无法对虚函数优化
编译器多态
对于模板参数而言,多态是通过模板具体和函数重载实现的,不同的模板具体导致调用不同的函数,这就是编译器多态。相较于运行期多态,实现编译器多态之间的类不需要继承体系,约束他们的是隐式接口。
缺点
代码调试带来困难
无法实现模板的额分离编译,当工程很大时,编译时间不可小觑
无法处理异质类对象的集合
名词解释
函数重写:当子类定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写(也称覆盖)了父类的这个函数。
以上是“C++中编译器多态与运行期多态的优缺点是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。