1 回答
已采纳
MadMarical
TA贡献79条经验 获得超122个赞
你好。假设有a类为根类,另有两个类b,c分别继承了a,那么同时b,c也继承了a中的成员以及成员函数。此时通过多重继承的方法让d继承自b,c这就产生了所谓的菱形继承。
假设a中有一公有方法init();
b,c继承自a也都有init方法;
d继承自b,c;
此时假设用d生成对象x,x调用init()。编译器将会产生疑惑,这个init到底是b中的init还是c中的init,因为两者看上去是一样的(都继承自a)。
正是由于这个原因,所以才使用虚继承,保证后面不出现二义性。
- 1 回答
- 0 关注
- 962 浏览
添加回答
举报
0/150
提交
取消