C++面向对象程序设计课件(第2章).ppt

C++面向对象程序设计课件(第2章).ppt

ID:58890951

大小:292.00 KB

页数:90页

时间:2020-09-30

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章继承与派生本章学习重点掌握内容:继承和派生的概念派生类的建立及继承的方式各种继承方式下基类成员的访问机制派生类的构造函数和析构函数多重继承虚基类8/12/202111、继承与派生的基础知识现实世界中,许多事物之间的并不是孤立存在的,它们存在共同的特性,有细微的差别,可以使用层次结构描述它们之间的关系。例如交通工具的层次结构如图2.1所示:8/12/20212继承与派生的基本概念保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被继承的已有类称为基类(或父类、超类)。派

2、生出的新类称为派生类(子类)。8/12/20213继承与派生的基本概念通过继承,新类获得了父类的所有数据成员和成员函数,并可以添加自己的数据成员和成员函数。一个基类可以派生出很多的子类,一个子类也可以作为另一个新类的基类,因此基类和子类是相对而言的。继承的方式有以下2种:单一继承和多重继承。8/12/20214基类与派生类的对应关系单继承派生类只从一个基类派生。多继承派生类从多个基类派生。多重派生由一个基类派生出多个不同的派生类。多层派生派生类又作为基类,继续派生新的类。8/12/20215继承与派生的目的继承的目的:实现代码重用。

3、派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。8/12/20216例:考虑某大学学生管理的程序,这个程序中可能包含下面的学生类student:classstudent{public:student(char*nm,intid,char*dp);voidprint()const;private:char*name;intstudent_id;char*department;};8/12/20217如果对于研究生,除了上面的数据之外还要处理更多的信息,例如论文题目,那么这个student类型不

4、能满足需要。我们要重新定义一个研究生类。classgrad_student{public:grad_student(char*nm,intid,char*dp,char*th);voidprint()const;private:char*name;intstudent_id;char*department;char*thesis;};8/12/20218可以看到,在grad_student类中包含了student类中的成员,两个类的代码有部分重复。实际上,研究生也是学生,但是上面两个类的定义并没有体现出这种关系。我们应该将grad_

5、student也是student的事实更明确地表达出来。classgrad_student:publicstudent{public:grad_student(char*nm,intid,char*dp,char*th);voidprint()const;private:char*thesis;};8/12/202192、派生类的定义定义派生类的一般格式为:class派生类名:继承方式基类名{成员声明;}8/12/202110派生类的定义不同继承方式的影响主要体现在:派生类成员对基类成员的访问权限通过派生类对象对基类成员的访问权限三

6、种继承方式公有继承私有继承保护继承8/12/202111派生类的定义【例】已知盒子CBox类,用继承与非继承两种不同的方法定义彩色盒子CColorbox类。分析:盒子类(Cbox)具有长、宽和高,成员函数SetLength()、SetWidth()和SetHeight()分别设置盒子的长、宽和高,成员函数Volume()计算盒子的体积。彩色盒子除具有以上特性外,还有一个数据成员color表示盒子的颜色,相应的成员函数SetColor()用于设置彩色盒子的颜色。8/12/202112派生类的定义非继承的方式,分别定义CBox类和CCo

7、lorbox类盒子类的定义:代码见备注彩色盒子类的定义:代码见备注8/12/202113派生类的定义使用派生类定义:classCColorbox:publicCBox//公有继承{//新增的私有数据成员public:voidSetColor(intc)//新增的成员函数{color=c;}private:intcolor;};利用继承机制产生类比第一种简单多了,但功能一样。8/12/202114多重继承在现实世界中,很多时候一个类会有两个或两个以上的基类。例如沙发床,既继承了床的特性又继承了沙发的特性。沙发床的多重继承结构图如图所示

8、。C++中,定义派生类时,派生类有两个或多个基类称为多重继承。8/12/202115多继承时派生类的定义class派生类名:继承方式1基类名1, 继承方式2基类名2,...{成员声明;}注意:每一个“继承方式”,只用于限制对紧随其后之

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

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

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