子类继承父类,父类的内部成员变量被子类继承。当初始化一个子类实例,父类的成员变量在前,子类的成员变量在后。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>

using namespace std;

struct Person {
int m_age;

};

struct Student : Person{
int m_no;

};

struct GoodStudent : Student {
int m_money;

};

int main() {

cout << sizeof(GoodStudent) << endl; // 12
GoodStudent gs;
gs.m_age = 20;
gs.m_no = 1;
gs.m_money = 666;

getchar();
return 0;
}

通过sizeof输出 GoodStudent实例所占用的内存空间12个字节。gs对象内存分布大概如下图: