具有多父多态层次结构的C ++ VTable实现

时间:2013-09-21 22:57:15

标签: c++ inheritance polymorphism virtual vtable

如果我有

A< -B(两者都是多态的)

在B上调用函数时有两个间接级别。首先查找确定A对象的类型,然后查找以查找所有B中的函数。

现在,如果我有:

A< -B< -C(并且都是多态类)

这是否意味着当我在C上调用一个函数时,它必须通过四个间接级别(两个用于B,两个用于A)?

1 个答案:

答案 0 :(得分:3)

总是在vtable中查找并​​调用结果函数。继承树的深度没有区别。当涉及多重继承时(即,具有多个基数的类),可能还需要调整指针,该指针变为this指针。