关于C++对象的内存使用疑问

发布于 2021-11-09 01:26:10 字数 31 浏览 814 评论 7

 #include <iostream>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

简单气质女生网名 2021-11-10 18:22:43

是的,rhel5.4 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

虐人心 2021-11-10 18:19:00

lz是64位环境么。。。

想挽留 2021-11-10 18:15:18

用我的系统编译出来字节和你的不一样,原因就是我的默认是pack(4)

皇甫轩 2021-11-10 05:08:49

系统默认一般是pack(8),字节对齐首先按照最高位对齐,一个结构中成员排列位置不一样对齐后的结构大小也不一样。
对于虚函数我们都知道实例对象中会建立一个虚地址指针
如果是虚继承而且有成员的话,子类实例中增加一个指针用来指向父类的首部,也就是说虚继承的子类在实例化时除了虚地址表指针外还会多一个指针。

孤独患者 2021-11-10 00:37:34

引用来自“夜游神(Lunar)”的答案

       呃.这个..... 可以找点  C++对象模型 的书看看. 本人没考究过.  virtual是虚继承,虚继承的基类构造方法由派生链上最后一个子类调用(而普通继承是由它的直接子类调用),这保证了虚继承的父类对象在内存中只有一份,否则正常情况下 某些多继承是有多个父类对象的. (如经典的 菱形继承)

终遇你 2021-11-09 21:55:30

#include <iostream>

三月梨花 2021-11-09 12:37:29

#include <iostream>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文