《C++程序设计开发》第5章 程序的类层次结构

第5章程序的类层次结构
第5章 程序的类层次结构

第5章程序的类层次结构 类的继承与派生 类层次中成员函数名的多态性
第5章 程序的类层次结构 ❖ 类的继承与派生 ❖ 类层次中成员函数名的多态性

派生 面向对象的程序设计的一个重要特点是允许 以既有类(也称基类),以其为基础导出 (定义)新的类(也称派生类)。这一过程 称为派生 令派生时不需要把既有类的相关代码重新书写 遍,只需要指明是以哪个类为基类,便可 以将基类中的有关特征继承过来,实现了部 分代码的可重用
派生 ❖ 面向对象的程序设计的一个重要特点是允许 以既有类(也称基类),以其为基础导出 (定义)新的类(也称派生类)。这一过程 称为派生 ❖ 派生时不需要把既有类的相关代码重新书写 一遍,只需要指明是以哪个类为基类,便可 以将基类中的有关特征继承过来,实现了部 分代码的可重用

类的继承与派生 派生方式 派生类的构造函数与释放函数 多基派生 虚基类 类层次中成员名的作用域 类层次中的类转换
类的继承与派生 ❖ 派生方式 ❖ 派生类的构造函数与释放函数 ❖ 多基派生 ❖ 虚基类 ❖ 类层次中成员名的作用域 ❖ 类层次中的类转换

派生方式 冷 public派生与 private派生 冷 Protected成员与 protected派生
派生方式 ❖ public派生与private派生 ❖ Protected成员与protected派生

pub派生与 private派生 C++允许程序员用下边的格式用一个类派生它的子 类 cass派生类名:派生方式基类名 private: 新增私有成员声明语句表列 public: 新增公开成员声明语句表列
public派生与private派生 ❖ C++允许程序员用下边的格式用一个类派生它的子 类: class 派生类名 : 派生方式 基类名 { private: 新增私有成员声明语句表列 public: 新增公开成员声明语句表列 };

两种派生方式的特点 冷1)无论哪种派生方式,基类中的 private成员 在派生类中都是不可见的。也就是说,基底 类中的 private成员不允许外部函数或派生类 中的任何成员访问。 冷2)pUb派生时,基类中的 public成员相当 于派生类中的 public成员 冷3) private派生时,基类中的pubc成员相当 于派生类中的 private成员
两种派生方式的特点 ❖ 1)无论哪种派生方式,基类中的private成员 在派生类中都是不可见的。也就是说,基底 类中的private成员不允许外部函数或派生类 中的任何成员访问。 ❖ 2)public派生时,基类中的public成员相当 于派生类中的public成员。 ❖ 3)private派生时,基类中的public成员相当 于派生类中的private成员

派生后基类成员访问性的变化 基类成员的 private public 访问性 派生方 private ublic private public 式 派生类成 不可见 可见 可见 外 员部数 不可见 可见
派生后基类成员访问性的变化 基类成员的 访问性 private public 派 生 方 式 private public private public 派 生 类 成 员 不可见 可见 可见 外 部 函 数 不可见 可见

定义 Location—Pont类层次结构 class Location( ∥基类接口定义 public XX Pos. mY P ∥位置的坐标,以像素点计 Location( int X, int y ∥构造函数初始化位置坐标 int getx ∥返回当前位置的x坐标 Int getY(): ∥返回当前位置的y坐标 enum BOOLEAN I FALSE, TRUE J ∥定义一个布尔类型 class Point: private Location( ∥派生类接口定义 BOOLEAN vIsible: ∥可见性变量 Public Point(int x, int y) ∥构造函数,初始化点的位置 BOOLEAN is Visible O;/返回当前点是否可见 Void show() ∥显示当前点 Void ∥隐藏当前点 moveTo ( ∥移动当前点
定义Location—Point类层次结构 class Location{ // 基类接口定义 public: int mX_Pos, mY_Pos; // 位置的坐标,以像素点计 Location ( int x, int y); // 构造函数,初始化位置坐标 int getX ( ); // 返回当前位置的x坐标 int getY ( ); // 返回当前位置的y坐标 }; enum BOOLEAN { FALSE,TRUE }; // 定义一个布尔类型 class Point : private Location{ // 派生类接口定义 BOOLEAN mVisible; // 可见性变量 Public: Point(int x, int y); // 构造函数,初始化点的位置 BOOLEAN isVisible ();// 返回当前点是否可见 Void show ( ); // 显示当前点 Void hide ( ); // 隐藏当前点 Void moveTo ( ); // 移动当前点 };

Protected成员与 protected派生 protected成员是一种血缘关系内外有别的成员。它 只为它所在类中的方法和由它直接派生的类方法可 见 冷 private、 protected,、pub|ic作为类成员的可见性修 饰符,将产生如下影响: 1)在一个类中定义的方法函数,可以访间本类中的 任何成员,但只能访问基类中的 protected成员和 pubi成员; 2)一个类对象,只能使用本类或其pubc派生基类 中的 public成员
Protected成员与protected派生 ❖ protected成员是一种血缘关系内外有别的成员。它 只为它所在类中的方法和由它直接派生的类方法可 见 ❖ private、protected,、public作为类成员的可见性修 饰符,将产生如下影响: 1) 在一个类中定义的方法函数,可以访问本类中的 任何成员,但只能访问基类中的protected成员和 public成员; 2) 一个类对象,只能使用本类或其public派生基类 中的public成员
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++程序设计开发》第4章 重载与模板.ppt
- 《C++程序设计开发》第3章 数据结构设计.ppt
- 《C++程序设计开发》第2章 算法设计与程序结构.ppt
- 《C++程序设计开发》第1章 C++程序设计入门.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Reflection Mechanism Java 反射机制.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)CollectionFramework.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Cloning Objects.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 13 I/O Package.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 12 Threads.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 11 Nested Classes and Interfaces.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 10 Interfaces.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 09 Extending Classes.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 08 Basic Grammar(Part 3).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 07 Basic Grammar(Part 2).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 05 Classes and Objects(Part 2).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 04 Classes and Objects(Part 1).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 03 JVM Architecture.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 02 Programming Basic.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 01 Java语言的发展历史(李凡).ppt
- 《文秘与办公应用全能培训教程》习题答案.doc
- 《C++程序设计开发》第6章 IO流类库.ppt
- 《C++程序设计开发》第7章 Visual C++程序设计.ppt
- 《计算机操作系统》管程monitor的特点.ppt
- 《计算机操作系统》第一章 计算机系统概述.ppt
- 《计算机操作系统》第十章 设备管理.ppt
- 《计算机操作系统》第十一章 文件管理.ppt
- 《计算机操作系统》第二章 操作系统概述.ppt
- 《计算机操作系统》第三章 进程描述和控制.ppt
- 《计算机操作系统》第五章 并发性:互斥和同步.ppt
- 《计算机操作系统》第六章 死锁和饿死.ppt
- 《计算机操作系统》第七章 存储器管理.ppt
- 《计算机操作系统》第八章 虚拟存储器.ppt
- 《计算机操作系统》第九章 单处理器调度(9-1)调度的类型.ppt
- 《计算机操作系统》第九章 单处理器调度(9-2)调度的类型.ppt
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第1章 微型计算机概述(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第10章 微机接口开发技术(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第2章 80x86微处理器及其体系结构(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第3章 微机存储器(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第4章 微机接口概述(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第5章 控制器接口(李芷).pps