- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1 类的继承与派生 需求 某公司需开发人事管理系统,每个员工都具有属性:工作编号、姓名、基本工资、月出勤率;企业需要为每个员工设置基本工资,员工可以查询基本工资,企业还要计算员工当月实际发放工资;行政员工的实际工资为基本工资加奖金,其中奖金与当月的考勤奖励;销售人员的工资为基本工资和按当月销售额的一定比例的提成;销售经理的工资为基本工资、当月考勤奖励和当月销售额的提成。 3.1 类的继承与派生 继承 是将自然界中存在的普遍和特殊关系用程序设计的方式进行分类描述; 是软件重用的一种形式。 继承在设计新类时,允许重用某个原有类的所有特征,并在此基础上添加新类的新特征。 被重用的原有类称为基类(base class)而新创建的类称为派生类(derived class)。 派生类不会影响到原有类的结构。 3.1 类的继承与派生 类设计 一个一般员工类CCompanyStaff,代表员工的共性; 三个新类分别继承一般员工类CCompanyStaff,然后根据各自的差异性,新类可以对继承来的内容进行改造。 派生类的定义 定义语法格式: class 派生类名 : 继承方式基类名1, 继承方式:基类名2… { 派生类成员的定义; } 3.1 类的继承与派生 继承方式 public private protected 继承关系 单继承(只有一个基类名) 多继承(继承多个父类) 继承关系定义实例 3.1 类的继承与派生 基类与派生类的关系 基类不受派生类变化的影响; 类CA:FunA();a 派生类继承了基类的全部数据成员和除了构造函数析构函数之外的全部成员函数 类CB:FunA(),FunB();a,b 类CC:FunA(),FunC(); a,c 基类的对象无法使用派生类的成员 CA ca; ca.FunB(1); (×) 3.1 类的继承与派生 该公司情况类代码: 企业员工类 继承的级别 直接继承 间接继承(多重继承) 例:D-C 类CC:FunA();FunC();FunD();a,c,d 增加行政主管一职,员工关系图如下: 3.1 类的继承与派生 3.1 类的继承与派生 定义代码: class CCompanyStaff; //基类员工 class CAdminStaff : public CCompanyStaff //派生类行政人员继承员工 class CForeAdmin : public CAdminStaff; //派生类行政主管继承行政人员 派生类内直接访问基类成员 可直接访问基类public/protected成员 不可访问基类private成员 例3.3 smain3_3.cpp protected访问权限: 设计基类时,在隐藏成员的同时还要允许派生类的成员能访问到,这时protected 就比private更合适; 3.1 类的继承与派生 类的继承方式 public 公有继承 private 私有继承 protected 保护继承 3.1 类的继承与派生 几个重要概念 基类类内 派生类类内 派生类类外 继承方式不改变派生类内访问基类成员的权限,只改变继承后,在派生类外通过派生类对象访问继承基类成员的权限。 3.1 类的继承与派生 public公有继承 在公有继承下,基类中所有成员在派生类中的访问区分符都保持不变。 访问控制 被public继承后 基类public成员仍可在类外通过派生类对象访问; 基类private成员不能在类外通过派生类对象访问; 基类protected成员不能在类外(除派生类的派生类外)通过派生类对象访问。 例3.1 一个公有继承的例子: sclass3_3.dev 3.1 类的继承与派生 private私有继承 在私有继承下,基类各成员无论是何种访问区分符在派生类中一律是private。 访问控制 被private继承后 基类public成员不能在类外通过派生类对象访问; 基类private成员不能在类外通过派生类对象访问; 基类protected成员不能在类外通过派生类对象访问。 例3.2 一个私有继承的例子: sclass3_3.dev 3.1 类的继承与派生 protected保护继承 在保护继承下,基类public成员的访问区分符变成protected,其它维持不变。 访问控制 被protected继承后 基类public成员不能在类外(除派生类的派生类外)通过派生类对象访问; 基类private成员不能在类外通过派生类对象访问; 基类protected成员不能在类外(除派生类的派生类外)通过派生类对象访问。 例3.3 一个protected继承的例子: sclass3_3.dev 3.1 类的继承与派生 访问区分符变化表 访问区分变化表 在派生类中,继承
您可能关注的文档
最近下载
- 2022年浙江省公务员考试《申论》真题及参考答案.docx VIP
- 新疆交投集团招聘笔试真题2024.docx VIP
- 第5讲从垄断到金融垄断—当代资本主义的发展.ppt VIP
- GB50205-2020钢结构工程施工质量验收标准.docx VIP
- CPI-GEN-IV-速调管高功放教程.pdf VIP
- 最全100%必过地理信息安全保密培训证书题库(填空题).docx
- 2020最新-4S店配件价格-华晨宝马3系 F35(12-07--15-09).pdf VIP
- A Rose for Emily 原文.doc VIP
- 义务教育人教版信息科技三年级全一册教学设计教案.docx
- 2025年体育单招英语试卷 .pdf VIP
原创力文档


文档评论(0)