c++ 虚继承,多重继承的对象内存模型
看到了一个非常好的文章:https://zhuanlan.zhihu.com/p/41309205,写在这里备忘,记录一下
在此之前我只知道单继承的虚表机制,没想到引入多继承和虚继承之后虚表竟然如此复杂。也理解了为什么在c++中不能再像c里面那样强制类型转换了,而是得用dynamic_cast。
不过后面设计到菱形继承之后我还没太看明白,过几天再看看。
建议在阅读的同时用https://gcc.godbolt.org/看gcc生成的汇编代码加深理解。