多继承与多重继承

来源:互联网 发布:印尼屠侨真相知乎 编辑:程序博客网 时间:2024/06/03 20:31

什莫是多继承?
一个类拥有两个或者两个以上的父类
什莫是多重继承?
一个类不仅仅有父类还有祖父类
什莫是虚继承?
虚继承是为了解决多继承的问题.经过这样的声明后,当基类通过多条派生路径被一个派生类继承时,该派生类只继承该基类一次,也就是说,基类成员只保留一次。
菱形继承:
以往,在派生类的构造函数中只需负责对其直接基类初始化,再由其直接基类负责对间接基类初始化。现在,由于虚基类在派生类中只有一份数据成员,所以这份数据成员的初始化必须由派生类直接给出。如果不由最后的派生类直接对虚基类初始化,而由虚基类的直接派生类(如类B和类C)对虚基类初始化,就有可能由于在类B和类C的构造函数中对虚基类给出不同的初始化参数而产生矛盾。所以规定:在最后的派生类中不仅要负责对其直接基类进行初始化,还要负责对虚基类初始化。
//由于b,c拥有同一个父类,并且虚继承过来的
class D: public B, public C
{
D(int n):A(n),B(n),C(n){ } //D类构造函数,在初始化列表中对所有基类进行初始化
};

0 0
原创粉丝点击