欢迎来到天天文库
浏览记录
ID:50041750
大小:209.50 KB
页数:48页
时间:2020-03-08
《C++程序设计案例教程 教学课件 作者 刘玉山第7章继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章继承学习目标了解多重继承中的二义性。理解继承的概念。掌握单一继承和虚基类的用法。第7章继承7.1继承与派生的概念7.2单一继承7.3多重继承7.1继承与派生的概念继承创建类就是在一个已定义好的类的基础上,通过添加新的数据成员或成员函数,从而生成一个新的类。其中,已定义好的类成为基类(或父类);新生成的类称为派生类(或子类);基类(或父类)与派生类(或子类)之间的关系是继承关系。换句话说,派生类(或子类)拥有基类(或父类)的数据成员和成员函数。任务1:设计一个类对学生信息进行描述,要求包括性别信息(1)任务描述在程序设计过程中,随着
2、设计工作的深入及用户要求的变化,已经设计好的类不一定能够满足我们设计的需要,例如在对学生的信息进行管理时,为了给学生分配宿舍,就需要了解学生的性别,这就要求学生类里面包括性别信息。(2)任务分析1)首先,我们确定性别信息的表示。我们添加数据成员sex表示性别,选择char类型,其值用'M'表示男;'F'表示女。2)我们仿照学生编号的存取操作编写性别的存取操作。voidSetSex(charsex)/*对性别赋值的函数*/{this->sex=sex;}charGetSex()/*读取性别值的函数*/{returnsex;}(2)任务分析
3、(3)接下来,该做什么呢?大家可能都会想到把上一章Student61_1.h文件复制过来,然后把上面的sex数据成员及对其操作的两个成员函数添加进去就可以了。对于这个思路,显然能够实现任务要求,但是,我们思考一下:这样一来,大量代码不是完全重复了吗?如果这样做,我想即使你完成了任务,心里也会感到不舒服的。有没有更简洁的方法实现任务呢?有!那就是通过继承生成新的类。(3)任务实现见程序NewStudent71_1.h(4)要点总结1)这是通过继承的方法生成的类NewStudent。2)我们把学生类Student称为基类(或父类);NewS
4、tudent类称为派生类(或子类);它们之间的关系是继承关系。派生类拥有基类的数据成员和成员函数。3)派生类的定义语法class<派生类名>:<继承方式><基类名>{<派生类新定义的成员>};4)继承方式:是指派生类对基类的访问权限。包括private、protected、public三种,我们下一节讨论这个问题。(4)要点总结5)派生类中可能出现的四种成员:①不可直接访问的成员:由基类的private私有成员被继承过来后形成,如基类的成员中学生代码,名字。②私有成员:派生类中新增加的private私有成员以及从基类私有继承过来的某些成
5、员。③保护成员:派生类中新增加的potected保护成员以及从基类继承过来的某些成员。④公有成员:包括在派生类中新增加的public公有成员以及从基类公有继承过来的基类的公有成员。(5)涉及到知识点1)派生类的定义:class<派生类名>:<继承方式><基类名>{<派生类新定义的成员>};2)继承方式:private、protected、public三种。7.2单一继承单一继承是指派生类只有一个基类,派生类仅继承这一个基类的数据成员和部分成员函数。依据继承方式的不同,派生类对基类成员的访问权限是不同的。7.2.1单一继承下派生类对基类成
6、员的访问权限任务2:通过继承创建一个新的学生类,要求包括编号、姓名、性别。(1)任务描述此任务通过继承来创建一个描述学生信息的类,主要目的是讨论派生类对基类成员的访问权限。(2)任务分析与设计1)为了更好的说明问题,我们把上一章定义的学生类加以修改,添加protected保护成员。2)在派生类里面输出学生信息。(3)任务实现见程序Student72_1.h。(4)要点总结1)这是一个通过继承创建学生类的代码段。基类BaseStu里面设置了三个数据成员:代码、名字和性别。它们的访问权限分别是private、protected和public
7、。(4)要点总结2)三种继承方式生成学生类DerivedStu。public方式:公有继承方式,基类称为公有基类,派生类称为公有派生类;protected方式:保护继承方式,基类称为保护基类,派生类称为保护派生类;private方式,私有继承方式,基类称为私有基类,派生类称为私有派生类。不同的继承方式,它们对基类成员的访问权限是不同的。(4)要点总结3)基类中的保护成员具有良好的继承特性。它在公有继承和保护继承方式下保持访问属性不变。并且保护成员具有良好的访问属性,它介于公有成员和私有成员之间,即可以被本类的成员访问,还可以被派生类的成
8、员访问,但不能被本类及派生类以外的程序访问。4)从继承方式上讲,我们一般选择public方式,以最大限度的继承基类的信息。(5)涉及到知识点1)继承方式。2)派生类对基类成员的访问权限。7.2.2基类中不能
此文档下载收益归作者所有