什么是菱形继承?
1、菱形继承是多继承关系的一种特殊情况
2、继承关系如下图:
(菱形继承关系图) (基于菱形继承关系的对象模型)
3、菱形继承代码:
class B
{
public:
int _b;
};
class C1 : public B
{
public:
int _c1;
};
class C2 : public B
{
public:
int _c2;
};
class D : public C1, public C2
{
public:
int _d;
};
分析这段代码,结合上图可以看到:
C1、C2继承B,且继承权限为public; D继承C1、C2,且继承方式为public。
对这段代码进行测试:
int main()
{
cout << sizeof(D) << endl;
D d;
//d._b = 1;