1. 菱形继承引入的问题
造成公共父类在子对象中存在多个实例,调用出错
2. 菱形继承如何解决
采用虚继承
3. 虚继承的逻辑
被虚继承的类会变成虚基类,虚基类在子类对象中存放在vbtable原本该存储在父类的位置上替换成vbptr,vbptr指向vbtable中虚基类的位置
注意:虚基类在子类构造中会被直接当做父类
1. 菱形继承引入的问题
造成公共父类在子对象中存在多个实例,调用出错
2. 菱形继承如何解决
采用虚继承
3. 虚继承的逻辑
被虚继承的类会变成虚基类,虚基类在子类对象中存放在vbtable原本该存储在父类的位置上替换成vbptr,vbptr指向vbtable中虚基类的位置
注意:虚基类在子类构造中会被直接当做父类