我看了这个问题:C++虚拟类继承对象大小问题,想知道为什么虚拟继承会导致类中有额外的vtable指针。
我在这里找到一篇文章:https://en.wikipedia.org/wiki/Virtual_inheritance。它告诉我们:
有人可以解释一下为什么某些编译器(如Clang/GCC)采用vtable实现虚拟继承以及在运行时如何使用吗?
顺便提一下,我还看到了这个问题:虚拟继承情况下的vtable,但它只涉及与虚拟函数有关的答案,这不是我的问题。
我在这里找到一篇文章:https://en.wikipedia.org/wiki/Virtual_inheritance。它告诉我们:
我不明白这里和运行时有什么关系。完整的类继承层次结构已经在编译时知道了。我理解虚拟函数和基础指针的用法,但虚拟继承中没有这样的东西。然而,在一般情况下,这个偏移量只有在运行时才能确定...
有人可以解释一下为什么某些编译器(如Clang/GCC)采用vtable实现虚拟继承以及在运行时如何使用吗?
顺便提一下,我还看到了这个问题:虚拟继承情况下的vtable,但它只涉及与虚拟函数有关的答案,这不是我的问题。