第10章继承和派生类ppt课件.ppt

第10章继承和派生类ppt课件.ppt

ID:58714525

大小:157.50 KB

页数:63页

时间:2020-10-04

第10章继承和派生类ppt课件.ppt_第1页
第10章继承和派生类ppt课件.ppt_第2页
第10章继承和派生类ppt课件.ppt_第3页
第10章继承和派生类ppt课件.ppt_第4页
第10章继承和派生类ppt课件.ppt_第5页
资源描述:

《第10章继承和派生类ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章继承和派生类目的与要求10.1继承与派生10.2冲突、支配规则和赋值兼容性10.3虚基类10.4静态数据成员本章小结目的与要求通过本章学习,应理解继承与派生的概念,掌握派生类的定义语句格式及使用方法。知道基类成员经公有或私有派生后在派生类中的访问权限。初步掌握冲突、支配规则、赋值兼容性的概念。了解虚基类的概念、虚基类的语句定义格式及使用方法。了解静态成员的定义格式、初始化方式及作用域。10.1继承与派生继承:从已有类出发建立新的类,使新类部分或全部地继承已有类的成员。派生:通过继承已有的一个或多个类产生一个新类称为派生。10.1.1继承与派生的基本概念1.继承与派生的

2、定义在定义类B时,若使用类A的部分或全部成员,则称类B继承了类A,并称类A为基类或父类,称类B为派生类或子类。基类与派生类或父类与子类的关系可以用图表示。基类(父类)A派生类(子类)B继承与派生2.单一继承若派生类是由一个基类派生出来的,称为单一继承,如派生类Score是由一个基类Student派生出的,所以为单一继承。如图所示。基类(父类)Student派生类(子类)Score单一继承3.多重继承若派生类由多个基类派生出,称为多重继承。如图所示。多重继承基类(父类)Student基类(父类)Score派生类(子类)Information10.1.2派生类的定义1.定义派生类

3、的格式class<派生类名>:<基类名1>〔,…,<基类名n>〕{…};说明:(1)派生类由n个基类多重派生,当n=1时为单一继承。(2)访问权限access={public、private与protected}2.公有派生若在定义派生类时,access为public,则定义公有派生。公有派生时,基类中所有成员在派生类中保持各个成员的访问权限。具体访问权限如下:(1)基类中public成员在派生类仍保持为public成员,所以在派生类内、外都可直接使用这些成员。(2)基类中private成员属于基类私有成员,所以在派生类内、外都不能直接使用这些

4、成员。只能通过该基类公有或保护成员函数间接使用基类中的私有成员。公有派生(3)基类中protected成员可在派生类中直接使用,但在派生类外不可直接访问这类成员,必须通过派生类的公有或保护成员函数或基类的成员函数才能访问。【例10.1】用学生档案类Student派生出学生成绩类Score。讨论基类中公有、私有与保护数据成员在派生类中访问权限的变化。例程3.私有派生若在定义派生类时,access为private则定义了私有派生。经过私有派生后:(1)基类中公有成员在派生类变为私有成员,在派生类内可以使用,而在派生类外不能直接使用。(2)基类中保护成员在派生类变为私有成员,在派生

5、类内可以使用,而在派生类外不能直接使用。(3)基类中私有成员在派生类内、外都不能直接使用,必须通过基类公有函数使用。10.1.3派生类的构造函数与基类成员的初始化1.派生类构造函数格式派生类的构造函数由初始化基类数据成员构造函数与初始化派生类新增的数据成员构造函数组成。派生类构造函数的格式为:<派生类名>::<派生类名>(形参表):<基类构造函数名1>(实参表1)〔,…,<基类构造函数名n>(实参表n)〕{派生类构造函数体}派生类构造函数格式说明:(1)基类构造函数实参可以是表达式或派生类构造函数的形参。(2)实参只与形参名有关,而与参数顺序无关。(3)冒号后基类构造函数列表

6、称为初始化成员列表。派生类构造函数举例【例10.2】多重派生实例。定义描述圆的类Circle,定义描述高的类High,用描述圆的类与描述高的类作为基类,多重派生出圆柱体类Cylinder。讨论多重继承中基类成员的初始化问题。例程2.建立对象时,构造函数的调用顺序先调用基类构造函数,再调用派生类构造函数。注意:(1)在派生类中并不能直接对基类的私有数据成赋初始值,必须通过公有的构造函数进行初始化工作。(2)基类构造函数的调用顺序取决于它们在派生类中说明顺序,而与它们在派生类构造函数中的顺序无关。3.撤消对象时,析构函数的调用顺序在撤消派生类的对象时,析构函数的调用顺序正好与构造

7、函数的顺序相反。即:先调用派生类的析构函数,再调用基类析构函数。【例10.3】定义两个基类Base1与Base2,并由Base1与Base2派生出派生类Derive。编写程序,输出派生类中构造函数与析构函数的调用关系。例程4.派生类中包含对象成员的构造函数若派生类中包含对象成员,则在派生类构造函数的初始化成员列表中不仅要列举要调用的基类构造函数,而且要列举调用的对象成员构造函数。【例10.4】将[例10.3]的派生类改为包含对象成员的派生类。例程首先要调用基类的构造函数,再调用对象成员的构造函数,最后执

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

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

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