中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第12讲 派生类的概念

第12讲派生类的概念 教学目的与要求: 了解什么是继承和派生。 掌握派生类的创建过程和派生方式 教学内容提要: 1、为什么要使用继承; 2、单基派生类的声明; 3、基类成员在派生类中访问属性 4、派生类对基类成员的访问 教学重点:单继承的派生类的定义方式和派生方式 教学难点:单继承的派生类的定义方式和派生方式 教学进度:Pl1P123 教学过程:
•教学目的与要求: 了解什么是继承和派生。 掌握派生类的创建过程和派生方式 •教学内容提要: 1、 为什么要使用继承; 2、单基派生类的声明; 3、基类成员在派生类中访问属性 4、派生类对基类成员的访问 •教学重点:单继承的派生类的定义方式和派生方式 •教学难点:单继承的派生类的定义方式和派生方式 •教学进度:P111~P123 •教学过程: 第 12 讲 派生类的概念

继承是面向对象程序设计支持代码重用的重要机制。C语言中,通 过继承,一个新类可以在原有类的基础上派生而来,新类将共享原有类的三 属性,并且还可以添加新的特性。 121为什么要使用继承】 交通工具 事物的共性与特性 汽车 小汽车卡车 旅行车 工具车轿车 面包车
工具车 轿 车 面包车 小汽车 卡 车 旅行车 汽 车 交通工具 事 物 的 共 性 与 特 性 继承是面向对象程序设计支持代码重用的重要机制。C++语言中,通 过继承,一个新类可以在原有类的基础上派生而来,新类将共享原有类的 属性,并且还可以添加新的特性。 【 12.1 为什么要使用继承】

在C++语言中,通过继承,可以让一个类拥有另一个类的全部 属性,也即让一个类继承另一个类的全部属性 可以把继承过程看成是从一个类派生出一个新类的过程。在已有 类的基础上新增自己的特性而产生新类的过程称为派生。派生出 来的新类称为派生类或子类;而被继承的类称作基类或父类。 个基类可以派生出多个派生类,一个派生类也可以由多个基 类派生而来。称从一个基类派生出一个派生类的过程为单继承; 从多个基类派生出一个派生类的过程为多继承
在C++语言中,通过继承,可以让一个类拥有另一个类的全部 属性,也即让一个类继承另一个类的全部属性。 可以把继承过程看成是从一个类派生出一个新类的过程。在已有 类的基础上新增自己的特性而产生新类的过程称为派生。派生出 来的新类称为派生类或子类;而被继承的类称作基类或父类。 一个基类可以派生出多个派生类,一个派生类也可以由多个基 类派生而来。称从一个基类派生出一个派生类的过程为单继承; 从多个基类派生出一个派生类的过程为多继承

计算机类 台式机类」便携式类」 a)单继承 输入设备类 输出设备类 外部设备类 b)多继承 图单继承与多继承
计算机类 台式机类 便携式类 输入设备类 输出设备类 外部设备类 a) 单继承 b) 多继承 图 单继承与多继承

(122单继承的派生类声明】 通过单继承派生一个类的一般形式如下: class派生类名:派生方式基类名 是通过单继{ 指明了这个派生类的基类,这 承派生出来 派生类新增加的数据个基类必须在声明这个派生类 的类的名称 成员和成员函数之前己经声明,否则,会导致 } 编译错误。 用关键字 public、 private或 protected指定,如果省略, 例如,(系统将默认为私有派生 c⊥ ass baseclass int a, b, public //公有成员
通过单继承派生一个类的一般形式如下: class 派生类名:派生方式 基类名 { 派生类新增加的数据 成员和成员函数 }; 是通过单继 承派生出来 的类的名称。 用关键字public 、private或 protected指定,如果省略, 系统将默认为私有派生。 指明了这个派生类的基类,这 个基类必须在声明这个派生类 之前已经声明,否则,会导致 编译错误。 【12.2 单继承的派生类声明】 例如: class baseclass { int a,b; public: //公有成员 };

例如: class subclass: public baseclass int Ci public //公有成员 subclass baseclass 基类部分 b b 派生类部分
a b baseclass 例如: class subclass:public baseclass { int c; public: //公有成员 }; a b subclass c 基类部分 派生类部分

从已有类派生出新类时可以在派生类内完成以下几种功能: (1)可以增加新的数据成员 (2)可以增加新的成员函数; (3)可以重新定义基类中已有的成员函数; (4)可以改变现有成员的属性。 public:表示公有派生 派生方式用的关键字 private:表示私有派生 protected:表示保护派生 在声明一个派生类时,采用不同的派生方式,从基类继承而来 的成员的访问权限在派生类中也有所不同
派生方式用的关键字 public:表示公有派生 private:表示私有派生 protected:表示保护派生 在声明一个派生类时,采用不同的派生方式,从基类继承而来 的成员的访问权限在派生类中也有所不同。 从已有类派生出新类时,可以在派生类内完成以下几种功能: (1) 可以增加新的数据成员; (2) 可以增加新的成员函数; (3) 可以重新定义基类中已有的成员函数; (4) 可以改变现有成员的属性

(123基类成员在派生类中的访问属性】 (1231公有派生】 当采用公有派生时,基类中的公有( public)成员和保护 ( protected)成员的访间权限在派生类中保持不变,而基类的 私有( private)成员无论是在派生类中,还是在类外都是不可 访问的。 简述基类的公有成员和保护成员被派生类继承过来,作为派 生类的公有成员和保护成员;但基类的私有成员在派生类中 不能直接使用
当采用公有派生时,基类中的公有(public)成员和保护 (protected)成员的访问权限在派生类中保持不变,而基类的 私有(private)成员无论是在派生类中,还是在类外都是不可 访问的。 基类的公有成员和保护成员被派生类继承过来,作为派 生类的公有成员和保护成员;但基类的私有成员在派生类中 不能直接使用。 简述 【 12.3.1 公有派生】 【 12.3 基类成员在派生类中的访问属性】

例12=1(公有派生 void maino include Bb class a b setx(2); b. sety (3); public cout<<X"<<.getxo<<"\tY=" void setx(int a)x=a; kb gety o<<endl; void sety(int b)y=b; 3 cout<<"X+Y=<<b getsum(<<endl; int getxO constreturn x; int getyO constreturn y; 3 protected: int x private: y }; class b: public a public: int getsumo{ return x+gety);}∥直接访间从基类继承来的保护成员x;但是基 类的私有成员y,只能通过接口函数访问
#include class A { public: void setx(int a){x=a;} void sety(int b){y=b;} int getx() const{return x;} int gety() const{return y;} protected: int x; private: int y; }; class B:public A { public: int getsum(){return x+gety());} //直接访问从基类继承来的保护成员x;但是基 //类的私有成员y,只能通过接口函数访问。 }; 例 12-1 公有派生 void main() { B b; b.setx(2); b.sety(3); cout<<″X=″<<b.getx()<<″\tY=″ <<b.gety()<<endl; cout<<″X+Y=″<<b.getsum()<<endl; }

2 Y=3 X+Y=5 在公有派生时,基类和派生类中的公有成员都可以直接通过派 生类的对象名来访问。一个类的保护成员只能被它自己的成员 函数或它的派生类的成员函数访问,在类外不能直接访问。 (1232私有派生 当采用私有派生时,基类的私有( private)成员与公有派生时 相同,无论是在派生类中,还是类外都是不可访问的。但基类 中的公有( public)成员和保护( protected)成员的访间权限 在派生类中则变为私有。 简述基类的公有成员和保护成员被派生类继承过来,作为派生 类的私有成员;而基类的私有成员在派生类中不能直接使用
在公有派生时,基类和派生类中的公有成员都可以直接通过派 生类的对象名来访问。一个类的保护成员只能被它自己的成员 函数或它的派生类的成员函数访问,在类外不能直接访问。 X=2 Y=3 X+Y=5 当采用私有派生时,基类的私有(private)成员与公有派生时 相同,无论是在派生类中,还是类外都是不可访问的。但基类 中的公有(public)成员和保护(protected)成员的访问权限 在派生类中则变为私有。 基类的公有成员和保护成员被派生类继承过来,作为派生 类的私有成员;而基类的私有成员在派生类中不能直接使用。 简述 【 12.3.2 私有派生】
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第11讲 静态成员及友元.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10讲 对象数组和指针及对象作为函数参数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10章 Visual C++编程实例.ppt
- 《单片机相关电子图书资料》第十一章 PIC 单片机的 C 语言编程.pdf
- 《单片机相关电子图书资料》精彩51单片机教程.pdf
- 《单片机相关电子图书资料》51单片机C编程.pdf
- 山东大学:《Visual C++程序设计》第4章 C++的流程控制语句(张晓如).ppt
- 山东大学:《Visual C++程序设计》第10章 构造函数和析构函数(张晓如).ppt
- 山东大学:《Visual C++程序设计》第14章 输入/输出流类库(张晓如).ppt
- 山东大学:《Visual C++程序设计》第12章 类的其他特性(张晓如).ppt
- 山东大学:《Visual C++程序设计》第13章 运算符重载(张晓如).ppt
- 山东大学:《Visual C++程序设计》第11章 继承和派生类(张晓如).ppt
- 山东大学:《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
- 中国铁道出版社:《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
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第20讲 模板.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第21讲 用指针处理链表.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第21讲 模板应用.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第22讲 C++的输入和输出.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第23讲 文件输入和输出.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第24讲 综合应用举例.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第2讲 C++基础.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第3讲 基本数据类型.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第4讲 函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第5讲 函数重载和变量的作用域.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第6讲 动态内存分配和引用.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第7讲 类和对象的声明.ppt