看到了一个非常好的文章:https://zhuanlan.zhihu.com/p/41309205,写在这里备忘,记录一下

在此之前我只知道单继承的虚表机制,没想到引入多继承和虚继承之后虚表竟然如此复杂。也理解了为什么在c++中不能再像c里面那样强制类型转换了,而是得用dynamic_cast。

不过后面设计到菱形继承之后我还没太看明白,过几天再看看。

建议在阅读的同时用https://gcc.godbolt.org/看gcc生成的汇编代码加深理解。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注