4.6.2 多重继承的声明
在C++(www.cppentry.com)中,类的多重继承与单继承的声明相似,其一般形式是:
- class 派生类名:继承方式1 基类1,…继承方式n 基类n
- { }
在多重继承中,派生类的构造函数要进行基类的初始化工作,因此如果任何一个基类的构造函数含有参数,那么派生类必须添加构造函数。构造函数的执行顺序是先执行基类的构造函数,再执行派生类的构造函数。同一层次的基类的执行顺序与声明时的顺序有关。析构函数的执行与构造函数的顺序相反。
说明:多重继承可以从多个基类进行继承,而且基类之间也可以存在继承关系。
【示例4.22】 是多重继承的使用实例。
- #include"iostream.h"
- class A
- {
- public:
- A()
- {cout<<"基类A的构造函数"<<endl;}
- ~A()
- {cout<<"基类A的析构函数"<<endl;}
- };
- class B
- {
- public:
- B()
- {cout<<"基类B的构造函数"<<endl;}
- ~B()
- {cout<<"基类B的析构函数"<<endl;}
- };
- class C:public A,public B
- {
- public:
- C()
- {cout<<"派生类C的构造函数"<<endl;}
- ~C()
- {cout<<"派生类C的析构函数"<<endl;}
- };
- void main()
- {
- C p;
- }
运行结果如下所示。
- 基类A的构造函数
- 基类B的构造函数
- 派生类C的构造函数
- 派生类C的析构函数
- 基类B的析构函数
- 基类A的析构函数
分析:派生类C是从A和B继承派生,声明时先声明继承A,又声明继承B,因此先执行A的构造函数,再执行B的构造函数,最后执行派生类C的构造函数。析构函数与构造函数的执行顺序相反。
【责任编辑:
云霞 TEL:(010)68476606】