|
|
1
1
根据编译器的不同,虚拟继承以不同的方式实现。 1) 是的,vc和gcc都使用vTable指针。但vc有另一个指针ref作为虚拟基指针。 2) 对于经典的虚拟继承,如Left<顶部右<顶部底部<左和右 堆栈应该是这样的:
程序使用vptr来查找vtable,对于gcc,有一个虚拟基偏移值在可行。vptr+基偏移量将给出父地址。 3) 我不知道你是什么意思。在C++编译器中有不同的实现方法。其他语言也有绑定函数的方法。 |