c++ - 多个级别的基类是否会减慢 C++ 中的类/结构?

标签 c++ oop

拥有多个级别的基类会减慢一个类的速度吗? A派生B派生C派生D派生F派生G,...

多重继承会减慢类的速度吗?

最佳答案

非虚拟函数调用在运行时绝对不会影响性能,这符合 C++ 的口头禅,即您不应该为不使用的东西付费。 在虚函数调用中,您通常需要为额外的指针查找付费,无论您有多少继承级别或基类的数量。 当然这是所有实现定义的。

编辑:如其他地方所述,在某些多重继承场景中,需要在调用之前调整“this”指针。 Raymond Chen 介绍 how this works用于 COM 对象。基本上,在从多个基类继承的对象上调用虚函数可能需要在虚调用所需的额外指针查找之上进行额外的减法和 jmp 指令。

关于c++ - 多个级别的基类是否会减慢 C++ 中的类/结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/99510/

相关文章:

oop - 为什么 Rust 不支持特征对象向上转换?

c++ - extern const char* const SOME_CONSTANT 给我链接器错误

php - 我如何获取 ?> 和 <?php 之间的内容

c++ - Visual Studio 2013 中的替代标记(不,和等...)

c++ - Variadic 模板匹配 const 和非常量 std::string 时遇到问题

ruby - 在 Ruby 中,使用 "def initialize ( value = ' ') 初始化类实例有什么好处?

c# - 在 OOP 中创建接口(interface)基础设施背后的哲学是什么?

java - 为什么需要一个对象来引用静态方法内的类成员?

c++ - 如何在Cocos2d-x中检测我是否需要使用超高清、高清或标清

c++ - 是什么让指针的这种用法不可预测?