虚继承为什么不会出现浪费内存猜想

虚继承为什么不会出现浪费内存猜想
一直想不通为什么看人家画内存图都会把虚拟成员放到最后,如何通过虚表确定虚拟变量唯一的呢?
大概是在初始化之前编译器已经根据代码分配好了内存,如上,B和C都虚继承于A,也许D继承于B,C
,这样D的内存分布图其实已经编译器大致构画好了。a的变量也许不在最下面,反正在一个位置吧;然后从下依次往上是d的变量,c,b,初始化的时候反着来,额b和c对于a的偏移量怎么确定的啊!暂且还是放在最下面吧公共变量,反正B,C在D中有个先后顺序,于是对于编译器在生成内存时,遇到vtural继承,比如B中有一个intC,中有一个int,D中有一个int,A有一个int,那么B碰到虚继承中的变量就会有一个虚指针根据内存的大小指向虚变量而不是在内部复制它,偏移量为20,B和C只是
虚继承为什么不会出现浪费内存猜想
相差20,BC只是相差了一个D,是虚继承的话就可以唯一确定一个共有变量的地址于是通过vtrual技术搞定了菱形问题