C++:42---类的内存大小
原创
©著作权归作者所有:来自51CTO博客作者游戏开发司机的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、类内存的特点
- 类内无任何成员变量时,默认为1字节
- 类内成员遵循内存的对齐补齐规则(与结构体的对齐补齐一样)
- 函数不占内存(存在代码段)
- 有继承关系时,父类的成员变量也属于类内寸的一部分,但是C++标准并没有明确规定派生类的对象在内存中如何分布(也就是说基类部分和派生类的成员不一定是连续存储的)
二、继承中内存的关系
- ①继承之后,子类中开辟了新的内存空间存储了基类的数据成员(不论公有私有或保护)
- ②但子类没有存储父类的方法(函数等),而是直接使用(因为成员方法存在代码段,可直接使用)
class A
{
public:
int a;
};
class B:public A//继承于A
{
public:
int b;
};
三、演示案例
class A{};
int main(){
cout<<sizeof(A);
return 0;
}
class A
{
int a;
char b;
char c;
int d;
};
cout<<sizeof(A); //12
class B
{
int a;
};
class A:public B
{
int a;
char b;
char c;
int d;
};
cout<<sizeof(A); //16