c++ - 一个空的class在内存中的大小问题

查看:92
本文介绍了c++ - 一个空的class在内存中的大小问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

比如有一个类定义如下:

class A{
};

当我们构造一个A类型的对象a,用sizeof(a)得出来的结果是1,在深入理解C++对象模型一书中,有如下的解释:
它有一个隐晦的1byte,那是被编译器安插进去的一个char,这使得这个class的两个objects得以在内存中配置独一无二的地址...

问题来了,为什么安插一个1byte的char就能配置出独一无二的地址?是怎么做到的?

解决方案

如果内存中连一个字节都没有分配,那自然没有一个内存地址可以表示这个对象,但即使只分配一个1Byte,也能保证这个对象分配到一个唯一的地址。

这篇关于c++ - 一个空的class在内存中的大小问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆