学习虚继承知识的时候,无意中发现了关于C++类所需内存的面试题,通过sizeof()计算类所需的内存字节数。当时自己就懵了,
因为学习C++的时候,就知道类在声明时是不会分配内存空间的还以为自己学习的东西出错,还来才知道sizeof()作用:sizeof是
C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。是提前预计类所需要的内存空间。
接下来进行类不同情况,sizeof()的分析
class kong{
};
cout << sizeof(kong)<<endl; //1 空类大小为1
原因:c++要求每个实例在内存中都有独一无二的地址。空类也会被实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化之后就有了独一无二的地址了。所以空类的sizeof为1。
class data2{
int a;
char s;