派生类成员函数访问基类成员-网络教育学院.ppt

派生类成员函数访问基类成员-网络教育学院.ppt

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

Object-Oriented Programming in C++ 第五章 继承与派生 中国科大学继续教育学院 李艺 leeyi@ 第一章 C++的初步知识 第二章 类和对象 第三章 再论类和对象 第四章 运算符重载 第五章 继承与派生 第六章 多态性与虚函数 第七章 输入输出流 第八章 C++工具 5.1 继承与派生的概念 5.2 派生类的声明方式 5.3 派生类的构成 5.4 派生类成员的访问属性 5.5 派生类的构造函数和析构函数 5.6 多重继承 5.7 基类与派生类的转换 5.8 继承与组合 5.1 继承与派生的概念 我们知道,面向对象程序设计的4个特性有抽象、封装、继承和多态。我们已经讨论了数据的抽象性和封装性,现在来讨论数据的继承。 5.1 继承与派生的概念 所谓继承,就是根据一个已存在的类建立一个新的类。已存在的类叫“基类”或“父类”,新建立的类叫“派生类”或“子类”。 新建立的子类从基类那里获得基类的特性,称为类的继承;由基类产生新的子类,叫派生。一个基类可以派生多个子类,一个子类可以由多级基类派生而来。比如: 5.1 继承与派生的概念 多个基类派生一个子类示意图。约定:箭头方向表示继承的方向,由派生类指向基类。 5.2 派生类的声明方式 声明派生类的方法: class 派生类名:[ 继承方式 ] 基类名 { 派生类新增的成员 }; 继承方式包括: Public方式,公用方式; Private方式,私有方式; Protected方式,受保护方式。 继承方式是可选的,不写此项,默认为私有方式。 5.2 派生类的声明方式 例如,由一基类Box(盒子类),派生出一个新的子类colorBox(彩色盒子): 5.3 派生类的构成 派生类的成员包括从基类继承过来的成员和自己增加的成员。从基类继承过来的成员,体现了基类与子类的共性;而新增加的成员,体现了子类的个性。下面是Box基类和 colorBox子类的存储图: 5.3 派生类的构成 请注意,类的继承并不是把基类成员和派生类新增成员简单地放在一起。构造一个派生类包括以下四部分工作 从基类接收成员。派生类把基类的全部成员(不包括构造函数和析构函数)接收过来。不足之处在于会造成冗余,浪费存储空间和执行效率,尤其是多次派生时。所以,不能随意地找一个类去派生出某一个子类。 调整从基类接收的成员。接收基类成员必须照单全收,但编程人员可以对接收过来的成员作一些调整。如, 通过指定不同的继承方式,来改变基类成员在派生类中的访问属性; 在派生类中声明一个和基类成员同名的成员,来“遮盖”接收的基类成员。如果想遮盖成员函数,其函数名和参数表必须相同,否则就成为重载。 在声明派生类时增加新的成员。主要体现子类对基类的扩展。 构造派生类的构造函数和析构函数。 5.4 派生类成员的访问属性 派生类成员中包含基类成员和派生类成员,在讨论访问属性时,需要考虑以下几种情况: 基类成员函数访问基类成员; 派生类成员函数访问派生类自己新增成员; 基类成员函数访问派生类成员; 派生类成员函数访问基类成员; 在派生类外访问派生类的成员; 在派生类外访问基类的成员。 对于①、②,种情况,按照第二章介绍的规则处理。即基类成员函数可访问基类成员,派生类成员函数可访问派生类自己新增成员,基类私有数据成员只能被基类成员函数访问,派生类新增私有数据成员,只能被派生类新增成员函数访问。 5.4 派生类成员的访问属性 对于第④~⑥种情况,我们分不同的继承方式分开讨论: 公用继承:基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类的私有,派生类新增成员不可访问它。 私有继承:基类的公用成员和保护成员在派生类中成为私有成员,其私有成员仍为基类的私有,派生类新增成员不可访问它。 保护继承:基类的公用成员和保护成员在派生类中成为保护成员,其私有成员仍为基类的私有,派生类新增成员不可访问它。 什么叫保护成员? 保护成员不能被外界引用,但可以被派生类的成员引用。 5.4 派生类成员的访问属性 公用继承 公用继承的定义:在定义一个派生类时,将基类的继承方式指定为 public 就是公用继承。其基类叫公用基类( public base class), 子类叫公用派生类 ( public derived class)。 被公用继承而来的基类在派生类中的访问属性见下表: 我们来看看下面的示例程序: 5.4 派生类成员的访问属性 #include iostream.h #include string.h class person {public: void get_value( ) { cinnumname; }

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档