一、菱形继承是什么?
一个派生类有多个基类,多个基类又由同一个类派生,用下列代码来解释
class A
{
public:
int _a;
};
class B : public A
{
public:
int _b;
};
class C : public A
{
public:
int _c;
};
class D: public B,public C
{
public:
int _d;
};
1、将上述的代码用图形表示:
一个派生类D是由多继承产生的,它的多个基类B、C继承了同一个基类A。造成派生类D中具有多份A类的属性,属于一种不合理的现象
2、查看类的分布图:
3、菱形继承会有什么问题呢?会让高层的基类在底层的派生类中拥有多份成员,造成不合理
4、菱形继承怎么解决?
利用虚继承解决