导引:多重继承和多继承
什么是多重继承:如图
什么是多继承:如图
继承中的特殊结构
菱形继承结构带来的问题,D会有两个A中的数据成员
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;
};
D中会有两个a一个是从B继承的,一个是从C继承的
出现这样的问题,有两种解决方案
一是我们可以这样访问,避免二义性
D obj;
cout<<obj.B::a<<endl;
cout<<obj.C::a<<endl;
二是可以使用虚继承
虚继承
- 虚继承是在继承的使用用virtual将要继承的类声明为虚基类,使公共基类的成员在重复继承的派生类中只产