- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基类私有成员基类公有成员派生类成员-Read.ppt
第11章继承和派生类 11.1 继承与派生 继承是软件重用的一种形式,它允许在已有类的基础上创建新的类。新类可以从一个或多个已有类中继承成员函数和数据,也可以加入新的成员数据和函数。 由已有的类产生新类的过程称作类的派生。已有的类称为基类或父类;派生出的新类称为派生类或子类。派生类自动获得基类的成员函数和数据的特性称为继承。 继承可形成一个层次结构,一个类可由其它类通过继承得到,又可作为基类再派生出新的子类。 单继承:只有一个基类的继承 多继承:有两个以上基类的继承 例:考虑某公司雇员信息的处理,设计雇员类Employee如下: class Employee{ char name[9]; //雇员姓名 Date birthday; //雇员生日 char dept[11]; //雇员工作部门 … //雇员的其它信息 }; 对于雇员中的经理,可定义类Manager: class Manager{ Employee emp; //雇员类的对象成员 int level; //经理级别 … //经理的其它信息 }; 这种描述方式并不能向编译器说明一个经理也是一个雇员。Manager类的对象不能与Employee类的对象同等地看待和使用。 表述Manager也是Employee的方法是: class Manager : public Employee{ int level; … //描述经理的其它信息 }; 11.1 继承与派生 派生类定义格式: class 派生类名:继承方式1基类名1, 继承方式2基类名2, ..., 继承方式n基类名n { 派生类新成员说明; }; 单一继承:只有一个基类名;多重继承:多个基类名 继承方式规定了基类成员在派生类中的访问控制方式 ,可为private, public, protected,缺省为private。 11.1 继承与派生 一个派生类的成员可分为两个部分:一部分是从基类继承得到的,构成派生类的基类部分;另一部分是派生类新定义的成员。无论使用何种继承方式,基类部分中的私有成员在派生类中是不能直接访问的,基类部分中的公有成员和保护成员在派生类中可被直接访问,但它们在派生类中的访问控制方式与派生类的继承方式有关。 11.2 访问控制 public派生:基类的公有成员如同是派生类的公有成员,即在派生类的外部也可访问基类的公有成员。基类中的私有成员仍是私有,即在基类外不能访问。 11.2 访问控制 private 派生:基类中的公有成员相当于派生类中的私有成员。即在派生类中可以访问基类的公有成员,而在派生类外,不能访问基类的公有成员。 11.2 访问控制 所有公有、私有派生:在派生类中可以访问和使用派生类中所有成员及基类中的公有成员。 11.2 访问控制 11.3 派生类的构造函数和析构函数 派生类继承了基类的全部数据成员,但是基类的构造函数和析构函数不能被继承,派生类也不能访问基类的私有数据。因此在建立派生类对象时,不仅要调用派生类自己的构造函数对新增数据成员初始化,还要调用基类的构造函数来初始化派生类对象的基类数据成员。 同样,派生类对象释放时,既需要调用派生类的析构函数处理新增数据成员,也需要调用基类的析构函数处理基类数据成员。 11.3 派生类的构造函数和析构函数 调用基类的构造函数的方式在定义派生类的构造函数时说明。 派生类的数据成员包括基类的数据成员与派生类新增的数据成员,新增成员中还可能包括成员对象。因此,产生派生类的对象时,必须对基类数据成员、新增数据成员和成员对象分别进行初始化。 11.3 派生类的构造函数和析构函数 派生类的构造函数的一般格式为: 派生类名::派生类名(总参数表) : 基类名1(实参表1), … , 基类名n(实参表n), 成员对象名1(实参表n+1), …, 成员对象名m(实参表n+m) { 派生类构造函数体 //派生类新增成员的初始化 } 11.3 派生类的构造函数和析构函数 基类成员和新增对象成员的初始化必须在成员初始化列表中进行,新增的其它数据成员的初始化可在成员初始化列表中进行,也可在构造函数体中进行。 当派生类有多个基类时,同一层次的基类其构造函数的调用顺序取决于定义派生类时说明的顺序(自左向右)。每个派生类只负责其直接基类的构造函数调用。 当派生类中有多个成员对象时,成员对象构造函数的调用顺序也取决于在派生类中定义的顺序(自上而下)。 派生类的构造函数负责对基类成员、成员对象及新增的数据成员初始化,它们的执行顺序如下: (1)调用基类构造
您可能关注的文档
- 国立彰化师范大学研究生联合自治会硕士服租借说明会一、硕士服租借.doc
- 国道外文专题特色数据库(SpecialSciDBS)讲座(主讲刘玉良).ppt
- 国道数据数据库超市及搜索系统(HDBSM).ppt
- 国际农产品价格波动对中国宏观经济的影响研究——基于CGE模型.doc
- 国际医学数据表.doc
- 国际商务导论课程教学.ppt
- 国际档案日.ppt-武汉理工大学档案馆.ppt
- 国际金融业务分行接受中华民国境外客户开户暨销售信托商品自律规范.doc
- 图1-32创建新工程对话框.ppt
- 图书馆及资讯学高级文凭课程(全日制)HigherDiplomaProgrammein.ppt
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 手术室人员行为管理与规范.pptx VIP
- 2025年呼和浩特市土默特左旗社区工作者招聘考试试题 .pdf VIP
- 卫生院优质服务基层行创建资料(1.1.2主要任务).docx VIP
- 2025年教职工疗休养服务项目212页.docx VIP
- 2025年内蒙古自治区中考语文试题卷(含答案解析).docx
- 中学生英才计划面试常见问题.docx VIP
- 社会组织矛盾纠纷排查化解工作总结.pptx VIP
- 近十年管综数学真题.pdf VIP
- 13、安放式支管台组对焊接.pptx VIP
- SIEMENS西门子 SIMATIC ET 200SP 电机启动器 (3RK1308‑0..00‑0CP0)设备手册.pdf VIP
文档评论(0)