class person1
{
};
class person2
{
int m_a;//非静态成员变量
static int m_b;//静态成员函数,不属于类对象
void func (){}//非静态成员函数,也不属于类对象上
static void func2(){}//静态成员函数,不属于类对象上
};
int person2::m_b = 100;
void test1()
{
person1 p;
//空对象占用内存空间为1
//编译器会给每个空对象分配一个字节空间,是为了区分空对象占内存的位置
//每个空对象会有一个对应的内存地址
cout << sizeof(p)<<endl;
}
void test2()
{
person2 p;
//当对象内只有一个非静态成员变量时,占用字节空间为4
//由于静态成员变量不属于类对象上,因此不占用类的内存空间,p的占用字节还是4
cout << sizeof(p) << endl;
}