再谈虚表

梦想游戏人
目录:
C/C++

图上3类C3中继承关系,内存布局都有影响。class C 大小依次是16,20,24

多继承可导致子类有多个虚表指针,导致了成员变量排列在n*sizeof (void*) + XXXXX +XXXXX字节之后, 这会导致很多问题,比如重构的时候修改了继承体系,某处通过指针语法糖获得的字段就会出问题。DLL导出的问题。等

单继承的好处是如果有继承体系 那么成员变量的地址永远是 sizeof(void*)之后 ,问题就简单多了

Scroll Up