我知道继承有一些积极的方面,但我不知道继承对运行时的负面影响?谁能告诉我一下,谢谢!
最佳答案
- 与基于组合的系统相比,基于大型继承的系统通常使用更多的内存并且数据布局更差,由于缓存的行为方式(您希望相关的所有内容都尽可能紧密地打包),这会在速度方面产生运行时成本。
- 虚函数调用需要访问虚函数表才能检索要调用的正确函数,由于缓存行为,虚函数表可能与调用函数相距甚远,这可能代价高昂。
- 多重继承进一步增加了虚函数调用的成本,因为首先可能需要计算偏移量才能获得正确的 vtable。
- 如果您正在使用 RTTI,那么您通常会在与 vtable 相关的固定位置看到额外的数据。这会影响 vtable 局部性,从而再次禁止缓存。
关于c++ - 在 OO 编程中,继承对运行时有哪些负面影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7837615/