一、类内存的特点 

  • 类内无任何成员变量时,默认为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