南邮C++第4章_继承与派生

南邮C++第4章_继承与派生

ID:43488973

大小:763.50 KB

页数:71页

时间:2019-10-08

南邮C++第4章_继承与派生_第1页
南邮C++第4章_继承与派生_第2页
南邮C++第4章_继承与派生_第3页
南邮C++第4章_继承与派生_第4页
南邮C++第4章_继承与派生_第5页
资源描述:

《南邮C++第4章_继承与派生》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、面向对象程序设计及C++主讲:曹晓梅第4章类的继承与派生面向对象程序设计及C++本章作业作业本:P146~152页:一、二、三、四、五(1、2)3本章内容提要类的继承与派生实现面向对象的继承性派生类的定义方式及基类成员的在派生类中的访问属性、属性的调整方法派生类的构造函数与析构函数的定义及调用方法,区别在单一继承与多重继承下的不同方式和要求三种命名冲突问题及解决方案虚基类的概念与作用基类与公有派生类间的4种赋值兼容规则4本章内容安排4.1继承与派生的概念4.2派生类的构造函数与析构函数4.3同名冲突及其解决方案4

2、.4虚基类4.5赋值兼容规则4.6本章小结结束本章54.1.1为什么要使用继承继承性是面向对象程序设计的第二大特性,允许在既有类的基础上创建新类,新类可以继承既有类中的数据成员和成员函数,可以添加自己特有的数据成员和成员函数,还可以对既有类中的成员函数重新定义。继承机制提高了代码的可重用性,使得类间具有了层次或等级,下层类继承了上层类,上层类派生了下层类。称既有类为基类或父类,称新类为派生类或子类。64.1.1为什么要使用继承继承普遍存在于生活中,比如:子女或多或少地从父母或是祖辈那里继承了相貌、行为举止方面的特

3、性,同时又具有自己的新特点继承关系也普遍存在于日常生活和客观事物中下页的图展示了家具类、床类、沙发类等类的继承与派生关系74.1.1为什么要使用继承家具类沙发类床类单人沙发类双人沙发类沙发床类双人床类单人床类单一继承多重继承上图的继承与派生共三层,如同一棵倒长的树,家具类为最上层基类,沙发类和床类既是派生类又是基类。84.1.1为什么要使用继承通过上图示例,理解下列3个问题:(1)基类与派生类的关系基类与派生类反映了类之间的继承与派生关系。基类派生了派生类,派生类继承了基类基类与派生类是相对而言的,最上层的一定是

4、基类,最下层的一定是派生类,中间层的类既可以是基类又可以是派生类基类与派生类的对应关系可以是一对一、一对多、多对一的关系94.1.1为什么要使用继承(2)单一继承与多重继承单一继承是指派生类只从一个基类继承而来多重继承指派生类同时从两个或更多的基类继承而来(3)多级继承当类之间的继承关系超过两层时,就构成了多级继承104.1.2派生类的定义派生类的定义格式如下:class<派生类名>:[继承方式]<基类名1>[,[继承方式]<基类名2>,…,[继承方式]<基类名n>]{<派生类新增的数据成员和成员函数定义>};说

5、明:(1)定义派生类通常用关键字class,也可用struct,二者的区别是:用class定义派生类,默认的继承方式为private(私有继承方式),用struct定义派生类,默认的继承方式为public(公有继承方式),新增加的成员默认属性也是class对应private(私有)属性,struct对应public(公有)属性。114.1.2派生类的定义(2)派生类名为合法的用户自定义标识符,一般用名词(3)派生类名后必须跟冒号,冒号后面是继承方式和基类名,对于单一继承,只有一个基类名,对于多重继承,有多个基类名

6、,彼此之间以逗号分隔,基类名不可缺省,继承方式可以使用缺省值(4)继承方式指明了派生类是以什么方式继承基类,有3种继承方式:public(公有继承方式)、protected(保护继承方式)、private(私有继承方式)(5)继承方式不能被多个基类共享,每个基类名前给出继承方式关键字,否则用默认值12派生类新增成员说明包括新增加的数据成员和成员函数,可以有对基类成员的访问声明,还可以有对基类中已有成员函数的重新定义(7)派生类的定义最后仍以分号作为结束标志(8)特别强调:基类不能被派生类继承的两类函数是构造函数和

7、析构函数4.1.2派生类的定义13教材的[例4.1]包含3个文件:文件Student.h定义了学生类Student作为基类文件Undergrad.h定义了Student类的派生类——本科生类Undergrad文件li4_1.cpp中定义了main函数,在其中定义了基类与派生类对象,并调用相应的成员函数完成一定的功能具体程序请阅读教材或在VC++6下运行演示该例中,Undergrad类为一个从基类Student公有继承的派生类,其成员的组成及属性如下页表所示4.1.2派生类的定义144.1.2派生类的定义成员来源从

8、基类中继承得到本类中新增加成员成员名及属性成员名属性成员名属性数据成员(共6个)nameprotectedspecialityprivatesexprotectedcreditprivateageprotectednumprotected成员函数(共5个)SetValuepublicSetAddedValuepublicPrintValuepublicChangeNump

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

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

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