南邮C++第4章_继承与派生.ppt_第1页
南邮C++第4章_继承与派生.ppt_第2页
南邮C++第4章_继承与派生.ppt_第3页
南邮C++第4章_继承与派生.ppt_第4页
南邮C++第4章_继承与派生.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象编程和c,发表:曹晓梅,第四章类的继承和派生,面向对象编程和c,3,本章作业,作业本: P146152页: 1,2,3,4,5 (1,2 ), 类的继承和派生实现物件导向继承性派生类的定义方法以及基类成员派生类中的网站数据库属性、属性调整方法派生类的定义和调用方法, 要求单一继承和在多继承的不同方式和3种命名碰撞问题和解决方案的虚拟基类的概念和作用区分基类和公开派生类间4种代入兼容性规则4.1继承派生的概念4.2派生类构造器和析构函数4.3同名冲突及其解决方案4.4虚基类4.5代入兼容性规则4.6 总结本章,结束本章,6,4.1.1为什么使用继承,继承性是面向对象计程仪编程的第二大特性

2、,在现有类之上创建新类,新类能够继承现有类的数据的继承反应历程,提高了查询密码的复用性,在类之间现有类称为基类或父类,新类称为派生类类或子类。 7、4.1.1为什么使用继承,继承在生活中普遍存在。 例如,小盆友多少从父母和祖先那里继承了容貌、行为举止上的特性,云同步上自各儿的新特征继承关系也是日常生活和客观事物中下一页中普遍存在的图是表示家具类、地板类、沙发类等的继承和派生关系的沙发类、床类、单沙发类、双索沙发床类、双人床类、单人床类、单继承、多继承、上图的继承和派生三层,像倒下的树一样,家具类是最上层的基类,9、9、9,4.1.1为什么使用继承,通过上图的示例,(1)基类与派生类的关系基类和

3、派生类基类派生了派生类,派生类继承子类和派生类是相对的,最上层的一定是基类,最下层的是派生类,中间阶层类即使是基类,派生类和派生类的对应关系也是一对一、一对多、多对一的关系,10,4.1.1为什么使用继承(2) 单一继承和多继承单一继承是指派生类只能从一个基类继承的多继承是指派生类在云同步上从两个以上基类继承;(3)多级继承类间的继承关系超过两个以上层时,构成多级继承,11,4.1.2派生类定义形式可解释如下: (1)派生类不同之处在于,用class定义派生类,差动奥尔特的继承方式为private (私有继承方式),用struct定义派生类,差动奥尔特的继承方式为public (公有继承方式)

4、、12、4.1.2派生类的定义,(2)派生类名是合法的自定义标识符,一般来说名词(3)派生类名后面有冒号,冒号后面有继承方式和基类名,对于单一继承,基类名只有一个,而对多继承有多个基类名。继承方式是差动奥尔特值(4) 可以使用继承方式来表示派生类如何继承基类,有三种继承方式: public (公开继承方式)、protected (保护继承方式)、private (私有继承方式) (5) 继承方式无法向多个基类继承的派生类新成员说明包含新添加的数据成员和成员函数,可向基类成员发出网站数据库宣言,也可对基类已有成员函数进行重定义(7)派生类的定义最后会将分号作为结束标志(8) :基类不能继承派生类

5、的两种函数是构造器和死亡函数, 4.1.2派生类的定义教材的示例4.1包含三个文件:文件Student.h将学生类Student定义为基类文件Undergrad.h对Student类的派生类本科生类Undergrad文件li4_1.cpp进行main 其中定义了基类和派生类对象,然后调用对应的成员函数来完成一定功能的具体计程仪程序会阅读教材,或在VC 6上执行,在本例中,Undergrad类是从基类Student公开继承的派生类, 其成员的构成和属性如下页表所示,在4.1.2派生类的定义、15、4.1.2派生类的定义、即派生类中新添加的成员的属性是其定义时的属性,但从基类继承的成员在派生类上的

6、网站数据库属性不一定与基类相同。 这和派生方式有关。 此外,在此堆计程仪上编译时,还会出现以下两个警告(1) Li4_1. CPP (19 ):warningc 4183:setvalue : memberfunctiondefinitionlookslikeaction。 butnamedoesnotmatchenclosingclass (2) Li4_1. CPP (37 ):warningc 4183:setaddedvalue 3360成员函数butnamedoesnotmatchencloss 在4.2.1节中介绍了消除这些个2个警告的方法,4.1.2派生类的定义,17,4.1.2

7、种继承方式介绍了基类成员派生类的网站数据库属性,基类成员派生类的网站数据库属性(1) 基类的private成员无论在哪个继承方式下,派生类都不能直接网站数据库(inaccessible) (2)在公开继承方式下,基类的protected和public成员在派生类上也保持了原来的网站数据库属性(3) 在保护继承方式中,基类的protected和public成员派生类中的网站数据库属性都是protected (4)专用继承方式,基类的protected和public成员在派生类中的private属性具体如下页表所示4.1.3种继承方式将基类4.1的类Undergrad的继承方式从public更改为

8、protected进行编译时,除了两条警告消息之外,还有以下两条错误消息(直接在VC 6中操作演示)。 对照表请学生说明原因。读者在(1)例4.1中的类Undergrad的继承方式变更为私有时,错误信息与刚才有什么不同吗? (2)当将例4.1中的类Student的数据成员属性从protected变更为private时,该佘语如何不被变更,4.1.3种继承方式下的派生类中的基类成员的网站数据库属性、20、【例4.2】成员的网站数据库属性4.1.3种继承方式下的派生类中的基类成员的网站数据库属性DerD13类,private,protected,public,public,public,21,【例4.3】基类的private class

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论