C++中一个空类的大小为什么是1?

来源:百度知道 编辑:UC知道 时间:2024/05/18 05:52:16
如,一个类:
class A
{

};

求sizeof(A)的值,得到了1;
为什么呢?
请高手指点,多谢!

这就是实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节。


#include<iostream>
using namespace std
class a{};
int main()

    cout<<"sizeof(a)="<<sizeof(a)<<endl; 
    return  0;
}

程序执行的输出结果为:

sizeof(a)=1

以上程序验证了空类所占内存为1个字节。

深度探索c++对象模型中是这样说的:
那是被编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。
也就是说这个char是用来标识类的不同对象的

貌似是入口地址吧

为什么C盘中Program Files文件夹中有些子文件夹是空的且删除不了呢 为什么C:\WINDOWS\regedit.exe是空的 为什么我C盘的Program Files里面无故出现一个名为3271的空文件夹,请问是病毒吗?? 为什么我的硬盘是空的,但可用空间怎么显示比实际大小要小呢 c 程序中我想定义一个一维数组,但大小是个变量,怎么办? 奇怪、为什么D盘中一个文件夹明明是空的但却还显示有7KB? “文件夹是空的”为什大小还是3K? 请问在计算机硬盘中什么是卷大小和族大小在一个40G的硬盘中卷大小和族大小是怎么来的 为什么我的C盘里有一个没有命名的空的记事本文件? m=a+d,n=b+c(a,b,c,d∈R+),且ad=bc,a是a,b,c,d中最大的一个,则m,n的大小关系是