类的大小由其成员变量决定,结构体同样。请看下面的结果。
#include <iostream>
using namespace std;
class A1
{
public:
int a;
static b; //静态变量存放在全局区
short c;
A1();
~A1();
};//8
class A2
{
public:
int a;
short b;
A2();
~A2();
};//8
class A3
{
public:
int a;
short b;
char c;
float d;
A3();
~A3();
};//12
class A4 //函数不占空间,整个class大小为1个字节
{
public:
A4();
~A4();
};//1
class A5
{
};//1
struct A6
{
};//1
int main(int argc, char* argv[])
{
cout<<"sizeof(A1)="<<sizeof(A1)<<endl;
cout<<"sizeof(A2)="<<sizeof(A2)<<endl;
cout<<"sizeof(A3)="<<sizeof(A3)<<endl;
cout<<"sizeof(A4)="<<sizeof(A4)<<endl;
cout<<"sizeof(A5)="<<sizeof(A5)<<endl;
cout<<"sizeof(A6)="<<sizeof(A6)<<endl;
return 0;
}