拥有多个级别的基类会减慢一个类的速度吗? A派生B派生C派生D派生F派生G,...
多重继承会减慢类的速度吗?
最佳答案
非虚拟函数调用在运行时绝对不会影响性能,这符合 C++ 的口头禅,即您不应该为不使用的东西付费。 在虚函数调用中,您通常需要为额外的指针查找付费,无论您有多少继承级别或基类的数量。 当然这是所有实现定义的。
编辑:如其他地方所述,在某些多重继承场景中,需要在调用之前调整“this”指针。 Raymond Chen 介绍 how this works用于 COM 对象。基本上,在从多个基类继承的对象上调用虚函数可能需要在虚调用所需的额外指针查找之上进行额外的减法和 jmp 指令。
关于c++ - 多个级别的基类是否会减慢 C++ 中的类/结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/99510/