第11章继承与派生.ppt
《第11章继承与派生.ppt》由会员分享,可在线阅读,更多相关《第11章继承与派生.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LogoLogoAdd Your Company Slogan第第11章章 继承与派生继承与派生C+程序程序设计本章内容本章内容11.1 11.1 继承与派生的概念继承与派生的概念11.2 11.2 派生类的声明方式派生类的声明方式11.3 11.3 派生类的构成派生类的构成11.4 11.4 派生类成员的访问属性派生类成员的访问属性11.5 11.5 派生类的构造函数和析构函数派生类的构造函数和析构函数11.6 11.6 多重继承多重继承11.7 11.7 基类与派生类的转换基类与派生类的转换11.8 11.8 继承与组合继承与组合11.9 11.9 继承在软件开发中的重要意义继承在软件开发
2、中的重要意义Logo面向对象程序设计有面向对象程序设计有4个主要特点个主要特点:抽象、封装、继承和多态性。抽象、封装、继承和多态性。11.1 继承与派生的概念继承与派生的概念p继承的概念:继承的概念:在已有类的基础上开发出新类的机制。在已有类的基础上开发出新类的机制。已存在的类称为已存在的类称为“基类基类”或或“父类父类”。新建立的类称为新建立的类称为“派生派生类类”或或“子类子类“。p派生的概念:派生的概念:从已有的类从已有的类(父类父类)产生一个新的子类,称为类的产生一个新的子类,称为类的派生。派生。基类与派生类的关系:基类与派生类的关系:派生类是对基类的扩充,基类时派生类派生类是对基类的
3、扩充,基类时派生类的基础。的基础。继承的目的:继承的目的:实现代码重用,实现代码重用,节省重复代码的编写工作。是软节省重复代码的编写工作。是软件重用的基础。件重用的基础。派生的目的:派生的目的:当新的问题出现,原有程序无法解决(或不能完当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。全解决)时,需要对原有程序进行改造。Logo11.1 继承与派生的概念继承与派生的概念在在C+中中,有有两种两种继承方式:继承方式:单一继承单一继承和和多重继承多重继承。单一继承单一继承:一个派生类只从一个父类派生,这称为单继承一个派生类只从一个父类派生,这称为单继承,这这种继承关系所
4、形成的层次是一个树形结构种继承关系所形成的层次是一个树形结构.在校人员类在校人员类学生类学生类职工类职工类(属性:属性:姓名,年龄,身高姓名,年龄,身高)增加增加属性:属性:学号学号 成绩成绩 增加增加属性:属性:部门部门 工资工资 单一继承单一继承Logo11.1 继承与派生的概念继承与派生的概念多重继承多重继承圆柱体类圆柱体类 圆类圆类 柱体类柱体类 组合组合(属性属性:圆心坐标圆心坐标,半径半径)(属性属性:高度高度)属性属性:圆心坐标圆心坐标,半径半径,高度高度多重继承:多重继承:一一个派生类有两个或多个父类的称为多重继承。个派生类有两个或多个父类的称为多重继承。Logo11.2 派生
5、类的声明方式派生类的声明方式单一继承单一继承定义派生类的一般格式:定义派生类的一般格式:class:private:/私有成员说明私有成员说明 .public:/公有成员说明公有成员说明 .protected:/保护成员说明保护成员说明 .;继承方式:继承方式:public 公有继承公有继承(派生派生)private 私有继承私有继承(派生派生)protected 保护继承保护继承(派生派生)Logo假设已经声明了一个基类假设已经声明了一个基类Student,在此基础上通过单继承建在此基础上通过单继承建立一个派生类立一个派生类Student1:class Student public:void
6、 display();private:int num;string name;string sex;void Student display()coutnum:numendl;coutname:nameendl;coutsex:sexendl;基基类StudentStudentLogoclass Student1:public Studentpublic:void display_1()/新增加的成员函数新增加的成员函数 coutage:ageendl;coutaddress:addrnumnamesex;numnamesex;void display()void display()coutc
7、out num:num num:numendlendl;coutcout name:name name:nameendlendl;coutcout sex:sex sex:sexendlendl;private:private:/基基类私有成私有成员 intint num;num;string name;string name;char sex;char sex;声明基类声明基类Logoclassclass Student1Student1:publicpublic Student Student /以以publicpublic方式方式声声明派生明派生类Student1Student1 pub
8、lic:public:void display_1()void display_1()coutcout num:num num:numendlendl;/企企图引用基引用基类的私有成的私有成员,错误coutcout name:name name:nameendlendl;/企企图引用基引用基类的私有成的私有成员,错误coutcout sex:sex sex:sexendlendl;/企企图引用基引用基类的私有成的私有成员,错误coutcout age:age age:ageendlendl;/引用派生引用派生类的私有成的私有成员,正确,正确coutcout address:address:ad
9、draddrendlendl;/引用派生引用派生类的私有成的私有成员,正确,正确private:private:intint age;age;string string addraddr;声明派生类声明派生类Logo例例11.1 访问公有基类的成员。访问公有基类的成员。可以将派生类可以将派生类Student1的声明改为的声明改为class Student1:public Student public:void display_1()cout age:ageendl;/引用派生类的私有成员,正确引用派生类的私有成员,正确cout address:addrendl;/引用派生类的私有成员,正确引用
10、派生类的私有成员,正确private:int age;string addr;Logo1.1.#include#include 2.2.using namespace std;using namespace std;3.3.class class StudentStudent4.4.public:public:5.5.void void get_valueget_value()()6.6.cincinnumnamesex;numnamesex;7.7.void display()void display()8.8.coutcoutnum:numnum:numendlendl;9.9.coutc
11、outname:namename:nameendlendl;10.10.coutcoutsex:sexsex:sexageageaddraddr;21.21.void display_1()void display_1()22.22.coutcoutage:ageage:ageendlendl;/引用派生引用派生类的私有成的私有成员,正确。,正确。23.23.coutcoutaddress:address:addraddrendlendl;/引用派生引用派生类的私有成的私有成员,正,正确确24.24.private:private:25.25.intint age;age;26.26.char
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 继承 派生
限制150内