当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

c++语言编程_第五章 继承和派生类

资源类别:文库,文档格式:PPT,文档页数:37,文件大小:95.5KB,团购合买
点击下载完整版文档(PPT)

第五章继承和派生类 继承和派生类是面向对象程序设计的一个重要 组成部分。本章要求掌握单一继承、多重继承 两义性、支配规则和虚基类的概念;掌握派生 类的访问权限,构造函数与析构函数的调用顺 序;理解两义性及其支配规则,训练运用作用 域分辨符,掌握赋值兼容规则

第五章 继承和派生类 继承和派生类是面向对象程序设计的一个重要 组成部分。本章要求掌握单一继承、多重继承、 两义性、支配规则和虚基类的概念;掌握派生 类的访问权限,构造函数与析构函数的调用顺 序;理解两义性及其支配规则,训练运用作用 域分辨符,掌握赋值兼容规则

、继承和派生的基本概念: 继承、基类与派生类 继承:继承就是创建一个具有别的类的属性和行为的 新类的能力。就是从已有的对象类型出发,建立一种 新的对象类型,使它继承(具有)原对象特点和功能。 类的派生:是一个过程,就是通过特殊化已有的类来 建立新类的过程。(我们想象水稻学家们试验出一个 水稻新品种的情况,通过已有的种类,创出新的种类, 而这个新类又继承了原来品种的一些特点和属性,并 有自己新的属性和特点)

一、继承和派生的基本概念: 继承、基类与派生类: 继承:继承就是创建一个具有别的类的属性和行为的 新类的能力。就是从已有的对象类型出发,建立一种 新的对象类型,使它继承(具有)原对象特点和功能。 类的派生:是一个过程,就是通过特殊化已有的类来 建立新类的过程。(我们想象水稻学家们试验出一个 水稻新品种的情况,通过已有的种类,创出新的种类, 而这个新类又继承了原来品种的一些特点和属性,并 有自己新的属性和特点)

基类和派生类:如同上面的例子,原有的水稻品种就是"基类 "p新生的品种就叫做"派生类",新的品种"遗传"了原来品种 的各种基因,在这里,一个派生类自动地将基类的成员做为 已的成员,我们叫做"继承",很形象地,基类和派生类又 可叫做"父类"和"子类

基类和派生类:如同上面的例子,原有的水稻品种就是"基类 ",新生的品种就叫做"派生类",新的品种"遗传"了原来品种 的各种基因,在这里,一个派生类自动地将基类的成员做为 自己的成员,我们叫做"继承",很形象地,基类和派生类又 可叫做"父类"和"子类"

性质约束和性质扩展: 类派生(继承)是面向对象程序设计方法和c+语言最重要的 继承常用来表示类属关系,不能将继承理解为构成关系, 比如我们假设昆虫是一个类,而蝴蝶也是一个类,这两个 类是派生(继承)的关系,基类是昆虫,派生类是蝴蝶,这 是一个类属的关系,蝴蝶类是属于昆虫类的,但不能理解 为构成关系,蝴蝶这个类不是昆虫这个类中的成员的简单 包括,它还有其他一些独特的成员,而原来的成员也被重 新定义,这些都表明蝴蝶类是昆虫类的一个分支而不是构 成关系

性质约束和性质扩展: 类的派生(继承)是面向对象程序设计方法和c++语言最重要的 特征之一。 继承常用来表示类属关系,不能将继承理解为构成关系, 比如我们假设昆虫是一个类,而蝴蝶也是一个类,这两个 类是派生(继承)的关系,基类是昆虫,派生类是蝴蝶,这 是一个类属的关系,蝴蝶类是属于昆虫类的,但不能理解 为构成关系,蝴蝶这个类不是昆虫这个类中的成员的简单 包括,它还有其他一些独特的成员,而原来的成员也被重 新定义,这些都表明蝴蝶类是昆虫类的一个分支而不是构 成关系

从上面的例子来理解,从现存类中派生出新类时,可以对派生 类做如下几种变化: 新的成员变量; 2.可以增加新的成员函数; 3.可以重新定义已有的成员函数; 4可以改变现有成员的属性(访问权限)。 以上允许派生类所作的变化是很广泛的,由此我们可以用派生 类对其从父类继承来的的性质进行限制或删除(这就是性质约 束),也可以对父类的性质进行增加(这就是性质扩展)

从上面的例子来理解,从现存类中派生出新类时,可以对派生 类做如下几种变化: 1.可以增加新的成员变量; 2.可以增加新的成员函数; 3.可以重新定义已有的成员函数; 4.可以改变现有成员的属性(访问权限)。 以上允许派生类所作的变化是很广泛的,由此我们可以用派生 类对其从父类继承来的的性质进行限制或删除(这就是性质约 束),也可以对父类的性质进行增加(这就是性质扩展)

、单一继承 C+中有两种继承:单一继承和多重继承。多重继承的派生类 各个基类 单一继承是本章的重点, 单一继承就是只通过一个基类产生派生类。这个派生类的基 类只有一个,它从基类继承所有的成员

二、单一继承 C++中有两种继承:单一继承和多重继承。多重继承的派生类 有多个基类 单一继承是本章的重点, 单一继承就是只通过一个基类产生派生类。这个派生类的基 类只有一个,它从基类继承所有的成员

单一继承的一般形式为: css派生类名:访问控制基类名{ 成员说明列表 public 成员说明列表

单一继承的一般形式为: class 派生类名:访问控制 基类名{ private: 成员说明列表 public: 成员说明列表 };

关于”类的保护成员": 个派生类的基类成员是私有成员的时候,虽然基类的成 被派生类继承,但C艹+规定,这个派生类仍不能直接访问 勺私有成员,只能通过基类的公有成员作为接口去访问, 这是符合数据封装的思想的。基类的私有成员在派生类中就 是"不可访问成员 为了能够在派生类中访问基类所有成员,又使数据封装得 以实现,就引入了"保护成员"的概念。就是在类的定义中, 用 protected来说明类成员,而不是用" private",这样的成 员就是类的保护成员。保护成员对于派生类的成员函数而 言是公有成员,而对于其他函数就仍是私有成员

关于"类的保护成员" : 当一个派生类的基类成员是私有成员的时候,虽然基类的成 员已被派生类继承,但C++规定,这个派生类仍不能直接访问 基类的私有成员,只能通过基类的公有成员作为接口去访问, 这是符合数据封装的思想的。基类的私有成员在派生类中就 是"不可访问成员" 。 为了能够在派生类中访问基类所有成员,又使数据封装得 以实现,就引入了"保护成员"的概念。就是在类的定义中, 用protected来说明类成员,而不是用"private",这样的成 员就是类的保护成员。保护成员对于派生类的成员函数而 言是公有成员,而对于其他函数就仍是私有成员

对于单一继承,主要要掌握的是其中的"访问控制(访问权限) 和赋值兼容规贝 派生类定义中的访问控制(权限)设为 public(公有)时, 类的派生就称为"公有派生",它有如下特点: 1.基类的公有成员在派生类中仍然是公有的。 2.基类的保护成员在派生类中仍然是保护的。 3.基类的不可访问和私有成员在派生类中仍然是不可访问 的 因为派生是没有限制的,也就是说,派生类也可做为基类派生 新的类,所以在派生类中有一种”不可访问成员"级别存在, 要么就是基类的不可访问成员要么就是基类的私有成员

对于单一继承,主要要掌握的是其中的"访问控制(访问权限)" 和赋值兼容规则: 当在派生类定义中的访问控制(权限)设为public(公有)时, 这个类的派生就称为"公有派生",它有如下特点: 1.基类的公有成员在派生类中仍然是公有的。 2.基类的保护成员在派生类中仍然是保护的。 3.基类的不可访问和私有成员在派生类中仍然是不可访问 的。 因为派生是没有限制的,也就是说,派生类也可做为基类派生 新的类,所以在派生类中有一种"不可访问成员"级别存在,它 要么就是基类的不可访问成员要么就是基类的私有成员

#include class a DU void setx(int a)(x=a;) void sety(int b)iy=b;) int getxo const( return x;) int getyO const( return y;) protected X, private int 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;};

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共37页,可试读13页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有