学习C++继承(点此进入)肯定脱离不了多继承,而菱形继承就是多继承的一种特殊情况。
菱形继承:B类和C类分别继承了A类,D类又同时继承了B类和C类。
此时会引起一个巨大的坑——数据冗余和二义性问题。下面附上代码:
class A
{
public:
int _a;
};
class B : public A
{
public:
int _b;
};
class C : public A
{
public:
int _c;
};
class D : public B, public A
{
public:
int _d;
};
int main()
{
D d;
//d._a = 1;//此时访问_a成员时出现不明确
return 0;
}