山东大学:《Visual C++程序设计》第11章 继承和派生类(张晓如)

第11章 丝水和派生
2021/2/24 1 第11章 继承和派生类

继承 问题的提出一个类的子类,能否通过原来的 类来简化程序设计,提高软件的重用性,并使 软件更容易维护。 基本概念 类A继承了类B定义类A时使用了已定义类B的 部分或全部成员。类B称为基类或父类,类A 称为派生类或子类 类树派生类作为另一个类的基类,基类再派生 出若干派生类,即构成类树。 2021/224
2021/2/24 2 继承 问题的提出 一个类的子类,能否通过原来的 类来简化程序设计,提高软件的重用性,并使 软件更容易维护。 基本概念 •类A继承了类B 定义类A时使用了已定义类B的 部分或全部成员。类B称为基类或父类,类A 称为派生类或子类。 •类树 派生类作为另一个类的基类,基类再派生 出若干派生类,即构成类树

如关于雇员和车辆的层次关系: Employe(员) TEacher(教师)Ore政) Worker(工人 Ⅴ chicle((车辆) Car(汽车) Sportscar(赛车) 2021/224
2021/2/24 3 如关于雇员和车辆的层次关系: Teacher(教师) Officer(行政) Worker(工人) Employee(雇员) Car(汽车) Sportscar(赛车) Vehicle(车辆)

对派生类可作如下几个工作: 1全部或部分地继承基类的成员数据或成员函数; 2增加新的成员变量; 3增加新的成员函数; 4重新定义已有的成员函数 5改变现有的成员属性。 C+中两种继承:单一继承和多重继承。如下图所示。 在校人员类 学生类职工类 学生类 职工类 在校人员类 2021/224 单一继承 多重继承
2021/2/24 4 对派生类可作如下几个工作: 1.全部或部分地继承基类的成员数据或成员函数; 2.增加新的成员变量; 3.增加新的成员函数; 4.重新定义已有的成员函数; 5.改变现有的成员属性。 C++中两种继承:单一继承和多重继承。如下图所示。 在校人员类 学生类 职工类 学生类 职工类 在校人员类 单一继承 多重继承

单一继承 派生类定义方式 class派生类类名:基类类名 i public ●●● ∥公有成员说明 protected: ∥护成员说明 p rivate /有成员说明 2021/224 5
2021/2/24 5 派生类定义方式 class 派生类类名:基类类名 { public: … //公有成员说明 protected: … //保护成员说明 private: … //私有成员说明 }; 单一继承

注 1 Access l可选,为基类中的成员在派生类中规定访问权 限 可选 public、 private、 protected之一。缺省时约定为 public 2. Access public时,派生类称为公有派生;为 private 时,称私有派生;为 protected时,称保护派生。 2021/224 6
2021/2/24 6 注: 1.Access可选,为基类中的成员在派生类中规定访问权 限。 可选public、private、protected之一。缺省时约定为 public。 2. Access为public时,派生类称为公有派生;为private 时,称私有派生;为protected时,称保护派生

公有派生 例1:公有派生 执行后输出: 1101 y2云 1 y=2 3 Sum=15 y=2z3 2021/224
2021/2/24 7 公有派生 例1:公有派生。 1101 执行后输出: x=1 y=2 z=3 x=1 y=2 z=3 Sum=15 y=2 z=3

注:1当一个类从一个基类公有派生时,基类中 的公有成员在类外可以通过派生类的对象名与成 员名一起来直接使用它。 2基类中的保护成员只能在派生类的成员函 数中直接使用,而在派生类之外不能直接使用。 3派生类中定义的成员函数不能直接使用基 类中的私有成员。 2021/224 8
2021/2/24 8 注:1.当一个类从一个基类公有派生时,基类中 的公有成员在类外可以通过派生类的对象名与成 员名一起来直接使用它。 2.基类中的保护成员只能在派生类的成员函 数中直接使用,而在派生类之外不能直接使用。 3.派生类中定义的成员函数不能直接使用基 类中的私有成员

私有派生 1私有派生类的基类中公有成员和保护成员均为私 有的,派生类中可直接使用。 2派生类外不可直接使用基类中的公有或私有成员 ,必须通过派生类中的公有成员函数间接地使用。 3基类中的私有成员只能通过基类的公有或保护成 员函数间接使用它们。 例2:私有派生。 102 般使用公有派生,私有派生 及保护派生使用较少。 2021/224 9
2021/2/24 9 私有派生 1.私有派生类的基类中公有成员和保护成员均为私 有的,派生类中可直接使用。 2.派生类外不可直接使用基类中的公有或私有成员 ,必须通过派生类中的公有成员函数间接地使用。 3.基类中的私有成员只能通过基类的公有或保护成 员函数间接使用它们。 例2:私有派生。 1102 一般使用公有派生,私有派生 及保护派生使用较少

派生类对基类成员的访问规则 访问有三种类型: 1.内部访问:由类自己的函数访问,如前例 类 vehicle中的函数 print void print oi cout <<"n weight: < weight << pds; cout < n top speed: < topspeed <<"mph cout<<" in price:s"≤≤ price;} 2.类的对象访问:由类创建的对象访问。 vehicle av(1500,060,300创建对象 av. print();∥调用基类函数 3外部访问:由友元、继承类函数等访问。 2021/2/24 10
2021/2/24 10 派生类对基类成员的访问规则 3. 外部访问:由友元、继承类函数等访问。 访问有三种类型: 1. 内部访问:由类自己的函数访问,如前例 类vehicle 中的函数 print void print( ) { cout << "\n weight:" << weight << "pds"; cout << "\n top speed:" << topspeed << "mph"; cout << "\n price: $ "<< price; } 2. 类的对象访问:由类创建的对象访问。 vehicle av(15000, 60, 300000); //创建对象 av.print( ); //调用基类函数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东大学:《Visual C++程序设计》第6章 数组(张晓如).ppt
- 山东大学:《Visual C++程序设计》第8章 指针和引用(张晓如).ppt
- 山东大学:《Visual C++程序设计》第5章 函数和编译预处理(张晓如).ppt
- 山东大学:《Visual C++程序设计》第2章 数据类型、运算符和表达式(张晓如).ppt
- 山东大学:《Visual C++程序设计》第9章 类和对象(张晓如).ppt
- 山东大学:《Visual C++程序设计》第3章 简单的输入/输出(张晓如).ppt
- 山东大学:《Visual C++程序设计》第7章 结构体、共同体 和枚举类型(张晓如).ppt
- 山东大学:《Visual C++程序设计》第1章 C++概述(张晓如).ppt
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》.doc
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》(计12个实验).doc
- 山东大学:高性能感应电机电流控制研究(硕士学位论文,程金路).pdf
- 《Photoshop CS3案例教程》项目四 制作图书封面——图像编辑.ppt
- 《Photoshop CS3案例教程》项目十二 制作下雪的圣诞节动画——动作与动画.ppt
- 《Photoshop CS3案例教程》项目十三 制作旅游网页界面——应用进阶.ppt
- 《Photoshop CS3案例教程》项目十一 制作折页广告——应用通道.ppt
- 《Photoshop CS3案例教程》项目十 制作茶叶包装盒——神奇的滤镜.ppt
- 《Photoshop CS3案例教程》项目六 打造精美电脑桌面——绘画与修饰工具.ppt
- 《Photoshop CS3案例教程》项目八 制作房地产广告——应用文字.ppt
- 《Photoshop CS3案例教程》项目五 制作电影海报——强大的图层.ppt
- 《Photoshop CS3案例教程》项目二 制作化妆品广告——选区制作(上).ppt
- 山东大学:《Visual C++程序设计》第13章 运算符重载(张晓如).ppt
- 山东大学:《Visual C++程序设计》第12章 类的其他特性(张晓如).ppt
- 山东大学:《Visual C++程序设计》第14章 输入/输出流类库(张晓如).ppt
- 山东大学:《Visual C++程序设计》第10章 构造函数和析构函数(张晓如).ppt
- 山东大学:《Visual C++程序设计》第4章 C++的流程控制语句(张晓如).ppt
- 《单片机相关电子图书资料》51单片机C编程.pdf
- 《单片机相关电子图书资料》精彩51单片机教程.pdf
- 《单片机相关电子图书资料》第十一章 PIC 单片机的 C 语言编程.pdf
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10章 Visual C++编程实例.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10讲 对象数组和指针及对象作为函数参数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第11讲 静态成员及友元.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第12讲 派生类的概念.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第13讲 派生的构造函数和析构函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第14讲 多继承.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第15讲 赋值兼容.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第16讲 多态性与虚.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第17讲 抽象类.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第18讲 运算符重载.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第19讲 几种常见的运算符重载及类型转换函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第1讲 面向对象程序设计概述.ppt