网站大量收购闲置独家精品文档,联系QQ:2885784924

c程序设计课件(第看2章).ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c程序设计课件(第看2章)

第2章 继承与派生 本章学习重点掌握内容: ? 继承的概念 ? 派生类的建立及继承的方式 ? 各种继承方式下基类成员的访问机制 ? 派生类的构造函数和析构函数 ? 多重继承 ? 虚基类 第2章 继承与派生 2.1 继承与派生的基础知识 2.2 类的继承方式 2.3 派生类的构造函数与析构函数 2.4 基类与派生类的转换 2.5 多重继承 2.6 虚基类 2.7 综合应用实例 2.1 继承与派生的基础知识 2.1.1 继承与派生的基本概念 现实世界中,许多事物之间的并不是孤立存在的,它们存在共同的特性,有细微的差别,可以使用层次结构描述它们之间的关系。例如交通工具的层次结构如图2.1所示: 2.1.1 继承与派生的基本概念 C++通过类派生(Class Derivation)的机制支持继承(Inheritance)。允许程序员在保持原有类特性的基础上进行扩展,增加功能,派生出新类。继承是面向对象程序设计中的代码复用的最重要的手段之一。被继承的类称为基类(Base Class)、父类或超类(Superclass),而新产生的类称为派生类(Derived Class)或子类(Subclass)。基类和派生类的集合称作类继承层次结构(Hierarchy),继承呈现了面向对象程序设计的层次结构。 2.1.1 继承与派生的基本概念 一个新类从已有的类获得其已有的特性称为继承。通过继承,新类获得了父类的所有数据成员和成员函数,并可以添加自己的数据成员和成员函数。一个基类可以派生出很多的子类,一个子类也可以作为另一个新类的基类,因此基类和子类是相对而言的。继承的方式有以下2种:单一继承和多重继承。 2.1.1 继承与派生的基本概念 单一继承和多重继承 2.1.2 派生类的定义 定义派生类的一般格式为: class 派生类名:继承方式 基类名 { private: 成员表1; //派生类增加或重写的私有成员 protected: 成员表2; //派生类增加或重写的保护成员 public: 成员表3; //派生类增加或重写的公有成员 }; 2.1.2 派生类的定义 其中:基类名是已声明的类,派生类名是新生成的类名; ? 继承方式规定了如何访问从基类继承的成员。继承的方式包括:私有继承(private)、保护继承(protected)、 公有继承(public)。不同的继承方式下,派生类继承的父类成员的访问权限是不同的。继承方式可以省略不写,默认的继承方式为私有继承(private); ? 派生类的定义中包括子类新增加的成员和继承父类需要重写的成员。新添加的成员是派生类对基类的发展,说明派生类新的属性和方法;派生类继承了父类的数据成员和成员函数,有时继承来的成员函数需要改进,以满足新类的实际需要。C++允许在派生类中重新声明和定义这些成员函数,使这些函数具有新的功能,称之为重写或覆盖。重写函数起屏蔽、更新作用,取代基类成员,完成新功能。 2.1.2 派生类的定义 【例2.1】已知盒子CBox类,用继承与非继承两种不同的方法定义彩色盒子CColorbox类。 分析:盒子类(Cbox)具有长、宽和高,成员函数SetLength()、 SetWidth()和SetHeight()分别设置盒子的长、宽和高,成员函数Volume()计算盒子的体积。彩色盒子除具有以上特性外,还有一个数据成员color表示盒子的颜色,相应的成员函数SetColor()用于设置彩色盒子的颜色。 2.1.2 派生类的定义 非继承的方式,分别定义CBox类和CColorbox类 盒子类的定义:代码见备注 彩色盒子类的定义:代码见备注 2.1.2 派生类的定义 使用派生类定义: class CColorbox : public CBox //公有继承 { //新增的私有数据成员 public: void SetColor(int c) //新增的成员函数 { color=c; } private: int color; }; 利用继承机制产生类比第一种简单多了,但功能一样。派生类CColorbox公有继承Cbox类,它包括基类CBox类的全部数据成员(length,width,height)和成员函数(SetWidth 、SetHeigh和SetWidth),但访问权限发生了变化。并且添加自己的新成员——数据成员color和成员函数SetColor()。 2.1.3 派生类的生成 仔细分析派生新类这个过程,实际

文档评论(0)

150****4233 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档