9.19

当派生类与基类中有相同成员时:

若未强行指名,则通过派生类对象使用的是派生类中的同名成员。

如要通过派生类对象访问基类中被覆盖的同名成员,应使用基类名限定。

多重继承:

class 派生类名:继承方式1  基类名1,继承方式2  基类名2,...

{

成员声明;

}

注意:每一个“继承方式”,只用于限制对紧随其后之基类的继承。

多继承时的构造函数:

派生类名::派生类名(基类1形参,基类2形参,...基类n形参,本类形参):基类名1(参数), 基类名2(参数), ...基类名n(参数)

{

本类成员初始化赋值语句;

};

二义性问题

在多重继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)——采用虚函数或同名覆盖原则来解决。

当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。

虚基类

虚基类的引入,用于有共同基类的场合

声明:以virtual修饰说明基类�例:class B1:virtual public B

作用:主要用来解决多继承时可能发生的对同一基类继承多次而产生的二义性问题.

为最远的派生类提供唯一的基类成员,而不重复产生多次拷贝

注意:在第一级继承时就要将共同基类设计为虚基类。

你可能感兴趣的:(9.19)