C++对象内存分配

C++ 的对象内存分配。

1、第一版 可以把class 当做 struct,

每个成员逐个占有空间。

每个成员占用的空间是 sizeof merber.



2、第二版 注意对齐的问题

  对齐是因为 处理器来进行的。在32位机器上 主要需要把 char 成员从  1Byte,补充到 4Byte。


3、第三版  考虑指针

   其实指针也还好,固定占 4byte。


4、第四版 考虑 vector 对象。

       vector 成员对象,固定占12 个byte。 原因就是 vector 的实现,由3个指针组成,见 stl_vector.h  如下:

            pointer M_start

           pointer M_finish

          pointer M_end_of_storage


5、第四版 考虑嵌套t对象,就有点迭代了。



总之根据以上的理解,可以知道一个 Object 的对象的内存 是在编译器就可以确定的。所以根据地址,去寻找对象的某一个成员是可行的。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值