15. 类的内存结构
一.无虚继承
1.单个类,无虚函数
按成员定义的顺序排列
B::member1
B::member2
2.单个类,有虚函数
虚表指针在偏移0处
__vfptr
B::member1
B::member2
3.单继承,无虚函数
先父类,再子类
B::member1
B::member2
D::member1
D::member2
4.单继承,有虚函数
虚表指针在偏移0处,再父类,再子类
__vfptr
B::member1
B::member2
D::member1
D::member2
5.多继承,无虚函数
按继承列表的顺序,先所有父类,再子类
A::member1
A::member2
B::member1
B::member2
D::member1
D::member2
6.多继承,有虚函数

二.有虚继承
1.单虚继承,无虚函数

2.单虚继承,有虚函数

3.菱形继承,无虚函数

4.菱形继承,有虚函数


浙公网安备 33010602011771号