C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx

C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx

ID:51777218

大小:688.15 KB

页数:83页

时间:2020-03-07

C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx_第1页
C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx_第2页
C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx_第3页
C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx_第4页
C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx_第5页
资源描述:

《C++面向对象程序设计(第二版) 教学课件 作者 张俊 Ch07-继承与派生.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++与面向对象程序设计1面向对象程序设计第7章继承与派生C++与面向对象程序设计2内容提要继承的概念访问权限控制派生类的构造函数和析构函数[1]对基类函数的调用[2]构造和析构的顺序C++与面向对象程序设计3第7章类与对象的定义7.1基本概念C++与面向对象程序设计47.1.0继承的概念继承的层次结构描述事物之间的层次结构关系继承的作用:减少代码冗余提高代码重用C++与面向对象程序设计57.1.0举例—层次结构关系C++与面向对象程序设计67.1.0举例—代码冗余C++与面向对象程序设计77.1

2、.0举例—代码重用C++与面向对象程序设计87.1.1继承的机制软件可重用性继承:应用已有类的所有功能扩展:增加新的成员,增加新的功能C++重要的特性之一:InheritanceC++与面向对象程序设计97.1.1继承与复合表示的关系不同继承:is-a复合:has-a适用情形不同:继承:有共同的属性和操作;但是有细微的差别复合:一个类是另外一个类的一部分C++与面向对象程序设计107.1.1代码实现方式不同复合继承C++与面向对象程序设计117.1.2基类和派生类基类(父类)派生类(子类)base

3、classderivedclassC++与面向对象程序设计127.1.2直接基类和间接基类ABCDAG图一个类只和它的直接基类产生关系(构造函数)。C++与面向对象程序设计137.1.2单一继承与多继承ABABC重点C++与面向对象程序设计147.1.3定义派生类的语法classA{};classB:[继承方式]A{//…};继承方式:public,private(默认方式),protectedC++与面向对象程序设计157.1.3举例—Person/StudentC++与面向对象程序设计167.

4、1.3举例—Shape/CircleC++与面向对象程序设计17第7章类与对象的定义7.2访问权限控制C++与面向对象程序设计187.2.0继承的三种方式公有继承(重点)私有继承保护继承C++与面向对象程序设计197.2.1没有继承时的访问权限公有保护私有类对象友元成员函数C++与面向对象程序设计207.2.1公有继承的访问权限公有保护私有派生类公有保护私有基类派生类对象派生类成员函数C++与面向对象程序设计217.2.1公有继承的访问规则派生类的对象只能访问基类/派生类的公有成员;派生类的成员函

5、数可以访问基类的公有和保护成员,本类的所有成员。C++与面向对象程序设计227.2.1举例—访问规则C++与面向对象程序设计237.2.1举例—访问规则C++与面向对象程序设计247.2.1举例—访问规则C++与面向对象程序设计257.2.2关于protected类的数据成员通常声明为private。公有继承时,派生类的成员函数不能访问基类的私有数据成员和私有成员函数。为方便派生类对基类数据成员的访问,通常把它的访问权限声明为protected。C++与面向对象程序设计26如果某类要被继承,一般把

6、它的数据成员声明为保护权限。7.2.2举例C++与面向对象程序设计27第7章类与对象的定义7.3派生类的构造函数C++与面向对象程序设计287.3.0继承之后派生类对象的大小:增加派生类对象的组成;(对派生类构造函数的影响)基类成员派生类成员C++与面向对象程序设计297.3.0派生类的构造函数—问题继承之后,派生类拥有了基类的数据成员。构造派生类对象时,需要先构造基类的数据成员。对基类数据成员的构造,由谁来完成?C++与面向对象程序设计307.3.0派生类的构造函数—问题谁负责构造?C++与面向

7、对象程序设计317.3.0派生类的构造函数—答案基类数据成员仍由基类完成其构造[责任明确,各扫门前雪]。派生类负责调用基类的构造函数来完成上述过程。每个派生类仅负责其直接基类的构造。C++与面向对象程序设计327.3.1派生类的构造函数—规则1如果基类有默认构造函数,则派生类的构造函数无需显式调用基类的构造函数。C++与面向对象程序设计337.3.2派生类的构造函数—规则2如果基类没有默认构造函数,则派生类的构造函数必须以成员初始化列表的方式直接向基类构造函数传递参数。C++与面向对象程序设计34

8、7.3.2举例(1)C++与面向对象程序设计357.3.2举例(2)C++与面向对象程序设计367.3.2举例(3)C++与面向对象程序设计377.3.2举例(3)C++与面向对象程序设计387.3.2举例(3)C++与面向对象程序设计397.3.3构造/析构函数调用的顺序构造派生类对象的时候,调用构造函数的顺序:基类,派生类的子对象,派生类析构派生类的对象时,调用析构函数的顺序:与构造顺序相反派生类,派生类的子对象,基类C++与面向对象程序设计407.3.3举例—函数顺序(1)C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。