(5.3)--第5章继承 - (03)_派生类的构造和析构的函数.ppt
《(5.3)--第5章继承 - (03)_派生类的构造和析构的函数.ppt》由会员分享,可在线阅读,更多相关《(5.3)--第5章继承 - (03)_派生类的构造和析构的函数.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计1第5章 继 承2派生类的构造函数与析构函数派生类的构造函数与析构函数01.派生的构造函数派生的构造函数02.派生类的析构函数派生类的析构函数03.构造和析构的调用次序构造和析构的调用次序3第章继承派生类的构造函数与析构函数l派生类中需要声明自己的构造函数。派生类中需要声明自己的构造函数。l声明构造函数时,只需要对本类中新增成员进行初始化,对声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类成员的初始化,自动调用基类构造函数完成。继承来的基类成员的初始化,自动调用基类构造函数完成。l派生类的构造函数需要给基类的构造函数传递参数派生类的构造函数需要给基类的构造函数传
2、递参数1、派生类的构造函数、派生类的构造函数2、派生类构造函数的定义、派生类构造函数的定义 派生类名派生类名(参数参数总表总表):基类名基类名1(参数表参数表1),基类名基类名m(参数表参数表m),成员对成员对象名象名1(成员对象参数表成员对象参数表1),成员对象名成员对象名n(成员对象参成员对象参数表数表n)派生类派生类新增成员新增成员的初始化;的初始化;基类成员的基类成员的初始化表初始化表3、派生类构造函数调用规则、派生类构造函数调用规则单继承时,派生类构造函数调用的单继承时,派生类构造函数调用的一般次序如下:一般次序如下:(1)调用基类构造函数。调用基类构造函数。(2)调用内嵌成员对象的
3、构造函数,调用内嵌成员对象的构造函数,调用顺序取决于它们在类中定义调用顺序取决于它们在类中定义的顺序。的顺序。(3)派生类自己的构造函数。派生类自己的构造函数。派生类构造函数的派生类构造函数的总参数总参数表中定义的参数个数等于表中定义的参数个数等于基类中基类中构造函数参数的个构造函数参数的个数数和和派生类中新增数据成派生类中新增数据成员的个数之和员的个数之和,新增成员,新增成员包括普通数据成员和子对包括普通数据成员和子对象数据成员。象数据成员。4【例【例5-5】单继承机制下构造函数的调用顺序。】单继承机制下构造函数的调用顺序。#include using namespace std;class
4、 Baseclass public:Baseclass(int i)a=i;coutconstructing Baseclass a=aendl;private:int a;class Derivedclass:public Baseclass public:Derivedclass(int i,int j);private:int b;Derivedclass:Derivedclass(int i,int j):Baseclass(i)b=j;coutconstructing Derivedclass b=bendl;int main()Derivedclass x(5,6);return
5、0;constructing Baseclass a=5constructing Derivedclass b=6程序输出结果为:程序输出结果为:第章继承派生类的构造函数与析构函数5当一个类既是派生类同时又包含嵌入对象时,构造函数调用次序:当一个类既是派生类同时又包含嵌入对象时,构造函数调用次序:调用基类的构造函数调用基类的构造函数按类声明中嵌入对象出现的次序调用嵌入对象的构造函数按类声明中嵌入对象出现的次序调用嵌入对象的构造函数执行派生类的构造函数执行派生类的构造函数通过初始化列表向嵌入对象的构造函数传递参数。通过初始化列表向嵌入对象的构造函数传递参数。组合的概念:一个组合的概念:一个类中的
6、数据成员包含另一个类的对象类中的数据成员包含另一个类的对象。第章继承派生类的构造函数与析构函数.组合组合6【例【例5-6】包括派生类新增的数据中有成员】包括派生类新增的数据中有成员对象对象时,其构造函数的调用顺序。时,其构造函数的调用顺序。#include using namespace std;class Base1/基类基类 public:Base1(int i)a=i;coutconstructing Base1 a=aendl;private:int a;class Base2 public:Base2(int i)b=i;coutconstructing Base2 b=bendl;
7、private:int b;class Base3 public:Base3(int i)c=i;coutconstructing Base3 c=cendl;private:int c;class Derivedclass:public Base1 public:Derivedclass(int i,int j,int k,int m);private:int d;Base2 f;Base3 g;第章继承派生类的构造函数与析构函数7Derivedclass:Derivedclass(int i,int j,int k,int m):Base1(i),g(j),f(k)d=m;coutcons
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5.3-第5章继承 03_派生类的构造和析构的函数 5.3 继承 03 派生 构造 函数
限制150内