【必考考点】 虚函数,动态多态的实现原理。 虚函数相关的内存模型。

作者: 骑猪撞宝马71分类: 计算机技术 发布时间: 2023-12-02 01:08:43 浏览:1775 次

【必考考点】 虚函数,动态多态的实现原理。 虚函数相关的内存模型。

dodobarnes:
我在半夜刷到这个视频,本来刷走了,但又返回来,感谢up主,帮助我克制熬夜冲动,准备迅速进入睡眠[呲牙]

Ryan24k:
最难的就是菱形继承,一直不懂。看到最后还是没讲[笑哭]

【回复】其实菱形继承有一些其它的内容,什么二义性之类的,和本章关系不大,本章主要讲的就是继承体系下的虚函数表的内存模型。所以对于菱形继承来说,它的方法是一样的,A->B->D A->C->D。这个是一个菱形继承,A多继承了B和C。B和C又都继承了D。那么在这个菱形继承中,如果要算A的虚函数表的排布,你先不管A,先按照单继承的方式计算出B和C的虚函数表。因为A是多继承于B和C的,计算好了B和C的虚函数表,再按照多继承的方法算A的虚函数表就好了,所以方法其实就是先使用上面讲的单继承的方法,再使用多继承的方法,算两次即可,没有更新的内容,也可以结合一下我文档中说的那个知乎的帖子,我就是照着它的看懂的。因为没有过多将菱形继承本身的问题,只是侧重于菱形继承时候虚函数表是啥样的,所以对于菱形继承就没怎么讲。
【回复】菱形继承就是B,C继承A里面的a,D继承B,C,导致D里面继承了A,B,C里面各自的a,结果就是有3份a,这3份a相互独立
Grace99306:
这个百度网盘链接里面的文档没有虚函数内容?我下载没有

柳下x:
“有几个父类就有几张虚函数表”,这个前提应该是每个父类都只有一张虚函数表吧。如果父类本身就不止一张虚函数表,比如父类也继承了好几个有虚函数的类,这个原则就有问题了吧[doge]

知识 腾讯 程序员 内存 面试 互联网 c++ 秋招 字节

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读