C++程序设计基础 安志远ppt第5章 继承.ppt

C++程序设计基础 安志远ppt第5章 继承.ppt

ID:51617175

大小:397.50 KB

页数:65页

时间:2020-03-26

C++程序设计基础 安志远ppt第5章 继承.ppt_第1页
C++程序设计基础 安志远ppt第5章 继承.ppt_第2页
C++程序设计基础 安志远ppt第5章 继承.ppt_第3页
C++程序设计基础 安志远ppt第5章 继承.ppt_第4页
C++程序设计基础 安志远ppt第5章 继承.ppt_第5页
资源描述:

《C++程序设计基础 安志远ppt第5章 继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章继承1目标理解继承和派生的概念熟练掌握单继承掌握多继承熟悉访问控制权限握虚基类的概念及应用25.1基类和派生类5.1.1继承和派生的概念5.1.2派生类的定义5.1.3类的继承方式35.1.1继承和派生的概念所谓继承,就是利用现有的类来定义新的类,新的类不仅能获得已有类的特性,而且还可以修改获得的特性以及增加新的特性。从已有类产生新类的过程就是类的派生。现有的类称为基类,新的类称为派生类。如果派生类从一个基类派生的,称这种继承为单继承;如果派生类从多个基类派生的,称这种继承为多继承。45.1.2派生类的定义单继承派生类的声明语法格式为:class<派生类名>

2、:[继承方式]<基类名>{派生类成员声明;};多继承派生类的声明语法格式为:class<派生类名>:[继承方式]<基类名1>,[继承方式]<基类名2>,•••{派生类成员声明;};55.1.2派生类的定义其中:①class是类声明的关键字,用于通知编译器所声明的是一个类。②派生类名是用户生成新类的名称,是C++标识符。③继承方式规定了如何访问从基类继承的成员。继承方式关键字为private、protected和public,分别表示私有继承、保护继承和公有继承。如果没有给出继承方式关键字,系统默认为私有继承(private)。类的继承方式指定了派生类成员以及类外对

3、象对于从基类继承来的成员的访问权限,这将在后面章节中详细介绍。65.1.2派生类的定义④派生类成员,这些成员是派生类不同于基类的成员,是派生类对基类的发展。当重用和扩充已有的代码时,就是通过在派生类中新增成员来添加新的属性和功能。可以说,这就是类在继承基础上的进化和发展。派生类成员的生成有三种来源:保留的基类成员;改造的基类成员;添加的新的成员;75.1.3类的继承方式在面向对象程序中,类的成员可以有public(公有)、protected(保护)和private(私有)三种访问控制权限。在派生类中,从基类继承的成员,其访问权限由继承方式控制。对于不同的继承方式,

4、基类成员原来的访问权限在派生类中会有所变化。类的继承方式有public(公有)继承、protected(保护)继承和private(私有)继承三种。85.1.3类的继承方式1.公有继承当类的继承方式为public(公有)时,基类的public(公有)和protected(保护)成员的访问权限在派生类中保持不变,而基类的private(私有)成员不可访问。【例5.4】公有继承例题。从基类Student(学生)类公有派生GraduateStudent(研究生)类,GraduateStudent类继承了Student类的全部特征,同时,GraduateStudent类自

5、身也有一些特点,这就需要在继承Student类的同时添加新的成员。程序代码如下。9#include#includeclassStudent//基类Student类的声明{private://私有数据成员char*name;intscoreNo;public://公有函数成员Student(char*nstr="",intsn=1){name=newchar[strlen(nstr)+1];strcpy(name,nstr);scoreNo=sn;}~Student(){delete[]name;}char*getname

6、(){returnname;}intgetScoreNo(){returnscoreNo;}};10//派生类GraduateStudent类的声明classGraduateStudent:publicStudent{private://新增私有数据成员char*instructor;public://新增公有函数成员GraduateStudent(char*nstr="",intsn=1,char*dstr=""):Student(nstr,sn){instructor=newchar[strlen(dstr)+1];strcpy(instructor,dstr

7、);}~GraduateStudent(){delete[]instructor;}char*getInstructor(){returninstructor;}};voidmain(){GraduateStudentlj("李婧",10001,"金羲");cout<<"研究生李婧信息:姓名t学号t导师"<

8、承当类的继

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

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

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