1 #include<iostream> 2 using namespace std; 3 class Small{}; 4 class LessFunc{ 5 int num; 6 void func1(){} 7 }; 8 class MoreFunc{ 9 int num; 10 void func(){} 11 int func2(){return 1;} 12 }; 13 class NeedAlign{ 14 char c; 15 double d; 16 int i; 17 }; 18 class Virtual{ 19 int num; 20 virtual void func(); 21 }; 22 int main(){ 23 cout<<sizeof(Small)<<endl; 24 cout<<sizeof(LessFunc)<<endl; 25 cout<<sizeof(MoreFunc)<<endl; 26 cout<<sizeof(NeedAlign)<<endl; 27 cout<<sizeof(Virtual)<<endl; 28 } 29 输出: 30 1 31 4 32 4 33 24 34 8
1、不允许有长度为0的数据类型存在,所以Small 占1个字节空间
2、成员函数不占用空间。
3、数据对齐,目的提高CPU的存储速率。
4、如果一个类中有虚函数,则会具有指向虚函数的指针空间。
5、sizeof用于数组是,读取的是数组的全部占用空间,作用于指针时,不管指针指向的是什么,大小一律是4个字节。