C++面向对象程序设计 第三章 继承.ppt

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

主讲教师: 个人主页:/~chenliangyin 教材:《C++面向对象程序设计》 李涛 主编 游洪跃 陈良银 李琳等编 高等教育出版社 2006年2月出版 本书内容 第1章 绪论 第2章 C++类和对象 第3章 继承 第4章 多态性 第5章 模板 第6章 C++常见问题 第7章 Visual C++编程基础 第8章 对话框、常用消息、菜单和工具条 第9章 单文档界面和多文档界面 第10章 图形设备接口 实验 (待安排) 3.1 类的继承与派生 继承与派生实例 继承是软件重用的一种形式。继承是将自然界中存在的普遍和特殊关系用程序设计的方式进行分类描述; 在设计新类时,允许重用某个原有类的所有特征,并在此基础上添加新类的新特征。 被重用的原有类称为基类base class而新创建的类称为派生类derived class。 派生类不会影响到原有类的结构。 3.1 类的继承与派生 某一小型公司的实例: 3.1 类的继承与派生 针对该公司的情况,先设计: 一个一般员工类CCompanyStaff,代表员工的共性; 让三个新类分别继承一般员工类CCompanyStaff,然后根据各自的差异性,新类可以对继承来的内容进行改造。 3.1 类的继承与派生 派生类的定义 从已有类产生新类的过程就是类的派生。 定义语法如下: class 派生类名继承方式:基类名1, 继承方式:基类名2… { 派生类成员的定义; } 继承方式分为三种关键字:public、private和protected; 单继承(只有一个基类名)和多继承; 该公司情况类代码: 企业员工类 相关派生类 3.1 类的继承与派生 3.1 类的继承与派生 继承的级别 增加行政主管一职,员工关系图如下: 3.1 类的继承与派生 用C++语言描述三个类的前向引用声明,形成了一个“类家族”: class CCompanyStaff; //基类员工 //派生类行政人员继承员工 class CAdminStaff : public CCompanyStaff ; //派生类行政主管继承行政人员 class CForeAdmin : public CAdminStaff; 3.2 继承方式 基类不受派生类变化的影响; 派生类继承了基类的全部数据成员和除了构造函数析构函数之外的全部成员函数,但是派生类能否访问这些成员还要受继承方式的约束; 3.2 继承方式 类的继承方式有public、private和protected三种, 其中private是缺省的继承方式; 公有继承: 基类各成员的访问权限如果是public或protected则在派生类中保持不变而基类中的private成员对派生类不可见,如图: 例3.1 一个公有继承的例子: sclass3_1.h sclass3_1.cpp smain3_1.cpp 基类A的所有成员在派生类中的访问控制权限都保持不变。 私有继承: 私有继承下,基类各成员无论是何种访问权限在派生类中一律以private的身份出现,连派生类的对象也无法访问,只有派生类的函数能在类内访问它们。 3.2 继承方式 如果希望私有继承来的某些基类的成员函数在派生类中也能对外可见,就需要在派生类中对这些成员公有化。 using CAnimal:: SetWeight; // 在派生类中将基类的成员函数SetWeight( )公有化 using CAnimal:: GetWeight; // 在派生类中将基类的成员函数GetWeight( )公有化 例3.2 私有继承中的公有化: sclass3_2.h smain3_2.cpp 3.2 继承方式 私有继承后的基类成员成为了派生类的私有成员, 实际上相当于终止了基类功能的继续派生。 class 派生类名 : private 基类名 { public: using 基类名:: 基类函数名; // 公有化 …… }; 3.2 继承方式 保护继承: protected访问权限: 设计基类时,在隐藏成员的同时还要允许派生类的成员能访问到,这时protected 就比private更合适; 例3.3 保护权限举例: 3.2 继承方式 例3.3 保护权限举例: sclass3_3.h smain3_3.cpp 3.2 继承方式 使用protected修饰类成员存在的隐患,它破坏了封装; protected继承; 保护继承下基类各成员的访问权限(除private外)都以protected权限出现; 比较私有继承和保护继承,可以

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档