学习前提
如何计算类的大小
1.假设
我们先假设空类的大小就是0,那用这个空类去定义三个对象c1
,c2
,c3
.
首先要知道,这三个对象是不是一样的?
不是呀,这是三个不同的对象
2.分析
但是我们都知道,创建对象要在栈帧上开辟空间
![在这里插入图片描述](https://img-blog.csdnimg.cn/f8fb4c118e6f4d5a972570c575810591.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6aOO6ZOD5aWI,size_12,color_FFFFFF,t_70,g_se,x_16)
我们假设了 空类的大小是0,发现c1
,c2
,c3
存储在相同的位置上,即这三个对象的地址是一样的,也就是三个一样的对象,而这又是三个不同的对象,说明了我们的假设是有误的
正确的结论
- 空类的大小不是0,在主流的编译器中,空类的大小是1
为什么将空类的大小定为1呢?
<