1

如果我有

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

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

现在,如果我有:

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

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

4

1 回答 1

3

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

于 2013-09-21T23:07:12.763 回答