加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在面向对象编程中,继承的一些负面运行时影响是什么?

发布时间:2020-12-16 10:20:28 所属栏目:百科 来源:网络整理
导读:我知道继承有一些积极的方面,但我不知道继承的负面运行时影响?谁能告诉我这件事,谢谢! 解决方法 基于大型继承的系统通常使用更多内存并且比基于组合的系统具有更差的数据布局,由于高速缓存的行为方式(由于高速缓存的行为方式而存在运行成本)(您希望所有相
我知道继承有一些积极的方面,但我不知道继承的负面运行时影响?谁能告诉我这件事,谢谢!

解决方法

>基于大型继承的系统通常使用更多内存并且比基于组合的系统具有更差的数据布局,由于高速缓存的行为方式(由于高速缓存的行为方式而存在运行成本)(您希望所有相关内容尽可能紧密). >虚函数调用需要访问虚函数表才能检索正确的函数来调用,由于缓存行为这可能代价高昂,vtable可能远离调用函数. >多重继承会进一步增加虚函数调用的成本,因为首先可能需要计算偏移量才能获得正确的vtable. >如果您正在使用RTTI,那么您通常会在与vtable相关的固定位置看到其他数据.这会影响vtable局部性,这会再次禁止缓存.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读