33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class CBird_1
{
};
class CBird_2
{
int num;
};
class CBird_3
{
void func() {}
};
class CBird_4
{
int num;
virtual void func() {}
};
class CBird_5
{
void func_1() {}
void func_2() {}
virtual void func_3() {}
virtual void func_4() {}
};
int main()
{
cout<<"sizeof(CBird_1) = "<<sizeof(CBird_1)<<endl;
cout<<"sizeof(CBird_2) = "<<sizeof(CBird_2)<<endl;
cout<<"sizeof(CBird_3) = "<<sizeof(CBird_3)<<endl;
cout<<"sizeof(CBird_4) = "<<sizeof(CBird_4)<<endl;
cout<<"sizeof(CBird_5) = "<<sizeof(CBird_5)<<endl;
}
// 输出结果:
// D:\localsvn\project\test\release>test.exe
// sizeof(CBird_1) = 1
// sizeof(CBird_2) = 4 // CBrid_2里面只包含一个INT,占4个字节
// sizeof(CBird_3) = 1 // CBrid_3里面只包含一个函数, 函数是怎样分配的,它不占用空间吗???
// sizeof(CBird_4) = 8 // CBrid_4里面包含一个虚函数和一个INT,会多一个指向虚函数表的指针(4个字节)
// sizeof(CBird_5) = 4 // CBrid_5里面包含一个函数和一个虚函数,取最大的占用4个字节