标签: c++ inheritance polymorphism virtual vtable
如果我有
A< -B(两者都是多态的)
在B上调用函数时有两个间接级别。首先查找确定A对象的类型,然后查找以查找所有B中的函数。
现在,如果我有:
A< -B< -C(并且都是多态类)
这是否意味着当我在C上调用一个函数时,它必须通过四个间接级别(两个用于B,两个用于A)?
答案 0 :(得分:3)
总是在vtable中查找并调用结果函数。继承树的深度没有区别。当涉及多重继承时(即,具有多个基数的类),可能还需要调整指针,该指针变为this指针。
this