营销型网站建设市场,美工培训电商设计培训班,腾讯邮箱网页版,搬瓦工wordpress建站一.成员变量和成员函数分开存储#xff1a; 在C中#xff0c;类的成员变量和成员函数分开存储#xff0c;只有非静态成员变量在属于类的对象上。 1.空对象的所占内存大小#xff1a;
//成员变量和成员函数分开存储
class Person
{};void test()
{Person p;cout 在C中类的成员变量和成员函数分开存储只有非静态成员变量在属于类的对象上。 1.空对象的所占内存大小
//成员变量和成员函数分开存储
class Person
{};void test()
{Person p;cout size of p sizeof(p) endl;
}
输出结果
size of p 1
原因 C编译器会给每个空对象也分配一个字节空间是为了区分空对象占内存的位置每个空对象也应该右一个独一无二的内存地址。 2.非静态成员变量在属于类的对象上
例1
//成员变量和成员函数分开存储
class Person1
{int a 10;//非静态成员变量属于类对象
};class Person2
{static int b;//静态成员变量,不属于类对象
};
int Person2 :: b 10;void test()
{Person1 p1;cout size of p1 sizeof(p1) endl;Person2 p2;cout size of p2 sizeof(p2) endl;
}输出结果
size of p1 4
size of p2 1 例2
//成员变量和成员函数分开存储
class Person1
{static void func1()//静态成员函数,不属于类对象{cout 静态成员函数 endl;}
};class Person2
{static void func2()//非静态成员函数,不属于类对象{cout 非静态成员函数 endl;}
};
void test()
{Person1 p1;cout size of p1 sizeof(p1) endl;Person1 p2;cout size of p2 sizeof(p2) endl;
}
输出结果
size of p1 1
size of p2 1