C++程序设计课件(第2章).ppt

C++程序设计课件(第2章).ppt

ID:53300697

大小:300.00 KB

页数:47页

时间:2020-04-18

C++程序设计课件(第2章).ppt_第1页
C++程序设计课件(第2章).ppt_第2页
C++程序设计课件(第2章).ppt_第3页
C++程序设计课件(第2章).ppt_第4页
C++程序设计课件(第2章).ppt_第5页
资源描述:

《C++程序设计课件(第2章).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章继承与派生本章学习重点掌握内容:继承的概念派生类的建立及继承的方式各种继承方式下基类成员的访问机制派生类的构造函数和析构函数多重继承虚基类7/27/20211第2章继承与派生2.1继承与派生的基础知识2.2类的继承方式2.3派生类的构造函数与析构函数2.4基类与派生类的转换2.5多重继承2.6虚基类2.7综合应用实例7/27/202122.1继承与派生的基础知识2.1.1继承与派生的基本概念现实世界中,许多事物之间的并不是孤立存在的,它们存在共同的特性,有细微的差别,可以使用层次结构描述它们之间的关系。例如交通工具的层次结构如图2.1所示:7/27/

2、202132.1.1继承与派生的基本概念C++通过类派生(ClassDerivation)的机制支持继承(Inheritance)。允许程序员在保持原有类特性的基础上进行扩展,增加功能,派生出新类。继承是面向对象程序设计中的代码复用的最重要的手段之一。被继承的类称为基类(BaseClass)、父类或超类(Superclass),而新产生的类称为派生类(DerivedClass)或子类(Subclass)。基类和派生类的集合称作类继承层次结构(Hierarchy),继承呈现了面向对象程序设计的层次结构。7/27/202142.1.1继承与派生的基本概念一个新类从已有的类

3、获得其已有的特性称为继承。通过继承,新类获得了父类的所有数据成员和成员函数,并可以添加自己的数据成员和成员函数。一个基类可以派生出很多的子类,一个子类也可以作为另一个新类的基类,因此基类和子类是相对而言的。继承的方式有以下2种:单一继承和多重继承。7/27/202152.1.1继承与派生的基本概念单一继承和多重继承请注意图中箭头的方向,本书约定,箭头表示继承的方向,由子类指向基类。7/27/202162.1.2派生类的定义定义派生类的一般格式为:class派生类名:继承方式基类名{private:成员表1;//派生类增加或重写的私有成员protected:成员表2;/

4、/派生类增加或重写的保护成员public:成员表3;//派生类增加或重写的公有成员};7/27/202172.1.2派生类的定义其中:基类名是已声明的类,派生类名是新生成的类名;继承方式规定了如何访问从基类继承的成员。继承的方式包括:私有继承(private)、保护继承(protected)、公有继承(public)。不同的继承方式下,派生类继承的父类成员的访问权限是不同的。继承方式可以省略不写,默认的继承方式为私有继承(private);派生类的定义中包括子类新增加的成员和继承父类需要重写的成员。新添加的成员是派生类对基类的发展,说明派生类新的属性和方法;派生类

5、继承了父类的数据成员和成员函数,有时继承来的成员函数需要改进,以满足新类的实际需要。C++允许在派生类中重新声明和定义这些成员函数,使这些函数具有新的功能,称之为重写或覆盖。重写函数起屏蔽、更新作用,取代基类成员,完成新功能。7/27/202182.1.2派生类的定义【例2.1】已知盒子CBox类,用继承与非继承两种不同的方法定义彩色盒子CColorbox类。分析:盒子类(Cbox)具有长、宽和高,成员函数SetLength()、SetWidth()和SetHeight()分别设置盒子的长、宽和高,成员函数Volume()计算盒子的体积。彩色盒子除具有以上特性外,还有

6、一个数据成员color表示盒子的颜色,相应的成员函数SetColor()用于设置彩色盒子的颜色。7/27/202192.1.2派生类的定义非继承的方式,分别定义CBox类和CColorbox类盒子类的定义:代码见备注彩色盒子类的定义:代码见备注7/27/2021102.1.2派生类的定义使用派生类定义:classCColorbox:publicCBox//公有继承{//新增的私有数据成员public:voidSetColor(intc)//新增的成员函数{color=c;}private:intcolor;};利用继承机制产生类比第一种简单多了,但功能一样。派生类CC

7、olorbox公有继承Cbox类,它包括基类CBox类的全部数据成员(length,width,height)和成员函数(SetWidth、SetHeigh和SetWidth),但访问权限发生了变化。并且添加自己的新成员——数据成员color和成员函数SetColor()。7/27/2021112.1.3派生类的生成仔细分析派生新类这个过程,实际是经历了以下步骤:首先继承基类的成员,不论是数据成员,还是成员函数,除构造函数与析构函数外全部接收,全部成为派生类的成员。第二步是重写基类成员。当基类成员在派生类的应用中不合适时,可以对继承的成员加以重写。如

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

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

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