多重继承小结

来源:互联网 发布:for vb 编辑:程序博客网 时间:2024/05/16 15:22

1.非虚拟基类的多重继承

这种形式的MI不会引入新的规则,不过,如果一个类从两个不同的类那里继承了两个同名的成员,则需要在派生类中使用类限定符来区分它们。否则,编译器将指出二义性。

2.虚拟基类继承

如果一个类通过多种途径继承了一个非虚拟基类,则该类从多种途径分别继承非虚拟基类的一个实例。在某些情况下,这可能正是所希望的,但通常情况下,多个基类实例都是问题。

3.如何使用虚拟基类MI

1)当派生类使用关键字virtual来知识派生时,基类就称为虚拟基类;从虚拟基类的一个或多个实例派生而来的类将只继承了一个基类对象。

2)有间接虚拟基类的派生类包含直接调用间接基类构造函数的构造函数,这对于间接非虚拟基类来说是非法的。

3)通过优先原则解决名称二义性。