如何解决upcasting后多重继承的内存布局
我正在学习我的 C++ 讲座,教授给出了一张幻灯片,上面有这个代码示例。他说因为 b1 是第一个父类(所以我认为第一个实现了?),它与子类(Mi)具有相同的内存地址。 然后,我仍然困惑为什么 b2 不等于 &mi,即使您在 Base1* b1 = &mi 中这样指定。
我认为它在内存中看起来像这样(见图),但我认为,当看到 b2 == &mi 为假的事实时,这是不正确的。我应该如何更改图片以使其正确表示内存布局?
Mi mi; //MI inherits both from Base1 and Base2
Base1* b1 = &mi; // Upcast
Base2* b2 = &mi; // Upcast
//Suppose b1 is first parent
//Now we test:
b1 == &mi; //true
b2 == &mi; //false
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。