面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt

面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt

ID:50080258

大小:651.50 KB

页数:63页

时间:2020-03-08

面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt_第1页
面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt_第2页
面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt_第3页
面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt_第4页
面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt_第5页
资源描述:

《面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第07章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第7章继承和派生本章主要内容(1)理解继承的概念和意义。(2)理解单一继承、多重继承中基类与派生类之间的关系。(3)理解并掌握派生类构造函数的编写要求以及派生类对象的构造过程和机理。(4)掌握虚函数和多态性的概念。(5)掌握虚函数的定义方法、调用方法及其在实现多态性方面所起到的作用。(6)了解纯虚函数与抽象基类的概念。2北京林业大学软件教研室7.1继承和派生的概念继承(Inheritance)就是在一个已存在的类的基础上建立一个新类,实质就是利用已有的数据类型定义出新的数据类型。在继承关系中:被继承的类称为

2、基类(Baseclass)(或父类)定义出来的新类称为派生类(Derivedclass)(子类)3北京林业大学软件教研室派生类不仅可以继承原来类的成员,还可以通过以下方式扩充新的成员:(1)增加新的数据成员(2)增加新的成员函数(3)重新定义已有成员函数(4)改变现有成员的属性4北京林业大学软件教研室多层次继承:在派生过程中,派生出来的新类同样可以作为基类再继续派生出更新的类,依此类推形成一个层次结构。直接参与派生出某类称为直接基类;而基类的基类,以及更深层的基类称为间接基类。在类的层次结构中,处于高层的类

3、表示最一般的特征,而处于底层的类则表示更具体的特征。类族:同时一个基类可以直接派生出多个派生类。这样形成了一个相互关联的类族。如,MFC就是这样的类族,它由一个CObject类派生出200个MFC类中的绝大多数。5北京林业大学软件教研室基类1基类2……基类n派生类1派生类2多重继承单继承:派生类只有一个直接基类。多重继承:派生类同时有多个直接基类。基类派生类1派生类2单继承6北京林业大学软件教研室7.2单继承7.2.1单继承的定义方式class派生类名:访问方式基类名{派生类中的新成员}7北京林业大学软件教

4、研室【例7-1】类Build_1是一个关于楼房数据的类。它的数据成员有posi_x、posi_y和area,分别表示楼房位置的经、纬度和建筑面积。它的成员函数只有set1,用于设置数据成员posi_x、posi_y和area的值。让Build_1作为基类,再增加数据成员height、成员函数set2和show来定义派生类Build_2。8北京林业大学软件教研室7.2.2派生类的成员构成派生新类经历了三个步骤:(1)吸收基类成员派生类继承和吸收了基类的全部数据成员和除了构造函数、析构函数之外的全部成员函数。(

5、2)改造基类成员一是基类成员的访问方式问题;二是对基类数据成员或成员函数的覆盖。(3)添加新成员保证了派生类在功能上比基类有所发展。9北京林业大学软件教研室7.2.3继承方式对基类成员的访问属性控制1.公有继承(public继承方式)基类中public和protected成员的访问属性在派生类中不变;而基类中的不可访问成员和private成员在派生类中不可访问。注意:不可访问成员与私有成员的区别。10北京林业大学软件教研室2.私有继承(private继承方式)基类中public和protected成员都以p

6、rivate成员出现在派生类中;而基类中的不可访问成员和private成员在派生类中不可访问。相当于中止了基类功能的继续派生!11北京林业大学软件教研室3.保护继承(protected继承方式)基类中public和protected成员都以protected成员出现在派生类中;而基类中的不可访问成员和private成员在派生类中不可访问。12北京林业大学软件教研室类的继承方式对基类成员的访问属性控制基类成员作为派生类成员公有继承保护继承私有继承public成员public成员protected成员priva

7、te成员protected成员protected成员protected成员private成员private成员不可访问不可访问不可访问不可访问成员不可访问不可访问不可访问13北京林业大学软件教研室【例7-2】验证公有继承方式下,类成员的访问特性。14北京林业大学软件教研室【例7-3】验证私有继承方式下,类成员的访问特性。15北京林业大学软件教研室【例7-4】验证保护继承方式下,类成员的访问特性。16北京林业大学软件教研室7.2.4派生类的构造函数派生类的构造函数:一方面负责调用基类的构造函数对基类成员进行初

8、始化;另一方面还要负责对基类的构造函数所需要的参数进行必要的设置。派生类名::派生类构造函数名(总参数列表):基类构造函数名(参数列表){派生类中新增数据成员初始化语句}17北京林业大学软件教研室在定义派生类的对象时:系统首先执行基类的构造函数;然后执行派生类的构造函数。【例7-5】定义一个点类Point,并由此派生出一个圆类Circle,并测试派生类的构造函数和基类的构造函数的执行顺序。18北京林业大学软件教研

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

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

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