首页 谭浩强清华大学C++上课ppt第11章

谭浩强清华大学C++上课ppt第11章

举报
开通vip

谭浩强清华大学C++上课ppt第11章null第4篇 面向对象的程序设计第4篇 面向对象的程序设计 第11章 继承与派生 第12章 多态性与虚函数 第13章 输入输出流 第14章 C++工具第11章 继承与派生第11章 继承与派生11.1 继承与派生的概念 11.2 派生类的声明方式 11.3 派生类的构成 11.4 派生类成员的访问属性 11.5 派生类的构造函数和析构函数 11.6 多重继承 11.7 基类与派生类的转换 11.8 继承与组合 11.9 继承在软件开发中的重要意义null面向对象程序设计有4个主要特点...

谭浩强清华大学C++上课ppt第11章
null第4篇 面向对象的程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 第4篇 面向对象的程序设计 第11章 继承与派生 第12章 多态性与虚函数 第13章 输入输出流 第14章 C++工具第11章 继承与派生第11章 继承与派生11.1 继承与派生的概念 11.2 派生类的声明方式 11.3 派生类的构成 11.4 派生类成员的访问属性 11.5 派生类的构造函数和析构函数 11.6 多重继承 11.7 基类与派生类的转换 11.8 继承与组合 11.9 继承在软件开发中的重要意义null面向对象程序设计有4个主要特点: 抽象、封装、继承和多态性。 要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特征——继承性和多态性。在本章中主要介绍有关继承的知识,在第12章中将介绍多态性。 面向对象技术强调软件的可重用性(software reusability) 。C++语言提供了类的继承机制,解决了软件重用问题。11.1 继承与派生的概念11.1 继承与派生的概念在C++中可重用性是通过继承(inheritance)这一机制来实现的。继承是C++的一个重要组成部分。 一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。 利用原来声明的类Student作为基础,再加上新的内容即可,以减少重复的工作量。 C++提供的继承机制就是为了解决这个问题。 在第8章已举了马的例子来说明继承的概念。见图11.1示意。null在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类(例如“马”)称为“基类(base class)”或“父类(father class)”。新建立的类(例如“公马”)称为“派生类(derived class)”或“子类(son class)”。见图11.2示意。 图11.1 图11.2null一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。类的继承是用已有的类来建立专用类的编程技术。派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整。一个基类可以派生出多个派生类,每一个派生类又可以作为基类再派生出新的派生类,因此基类和派生类是相对而言的。 以上介绍的是最简单的情况: 一个派生类只从一个基类派生,这称为单继承(single inheritance),这种继承关系所形成的层次是一个树形结构,可以用图11.3表示。null 图11.3 请注意图中箭头的方向,在本书中约定,箭头表示继承的方向,从派生类指向基类。null一个派生类不仅可以从一个基类派生,也可以从多个基类派生。一个派生类有两个或多个基类的称为多重继承(multiple inheritance),这种继承关系所形成的结构如图11.4所示。 图11.4null关于基类和派生类的关系,可以表述为: 派生类是基类的具体化,而基类则是派生类的抽象。 图11.511.2 派生类的声明方式11.2 派生类的声明方式假设已经声明了一个基类Student,在此基础上通过单继承建立一个派生类Student1: class Student1: public Student//声明基类是Student {public: void display_1( ) //新增加的成员函数 {cout<<″age: ″<>num>>name>>sex;} void display( ) {cout<<″ num: ″< #include using namespace std; class Student//声明基类 {public: //基类公用成员 void display( ); protected : //基类保护成员 int num; string name; char sex; }; void Student::display( ) //定义基类成员函数 {cout<<″num: ″< #include using namespace std; class Student//声明基类Student {public: Student(int n,string nam,char s) //基类构造函数 {num=n; name=nam; sex=s; } ~Student( ){ } //基类析构函数null protected: //保护部分 int num; string name; char sex ; }; class Student1: public Student //声明派生类Student1 {public: //派生类的公用部分 Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s) //派生类构造函数 {age=a; //在函数体中只对派生类新增的数据成员初始化 addr=ad; } void show( ) {cout<<″num: ″< #include using namespace std; class Student//声明基类 {public: //公用部分 Student(int n, string nam ) //基类构造函数,与例11.5相同 {num=n; name=nam; } void display( ) //成员函数,输出基类数据成员 {cout<<″num:″< #include using namespace std; class Student//声明基类 {public: //公用部分 Student(int n, string nam ) //基类构造函数 {num=n; name=nam; } void display( ) //输出基类数据成员null {cout<<″num:″<
本文档为【谭浩强清华大学C++上课ppt第11章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_154957
暂无简介~
格式:ppt
大小:667KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2012-01-05
浏览量:7