程序实例一人员信息管理(派生继承静态成员).doc

程序实例一人员信息管理(派生继承静态成员).doc

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

程序实例─人员信息管理 这里以一个小型公司的人员信息管理为例,说明类的派生过程及虚函数和虚基类的应用。 一、 问题的提出 某小型公司,主要有三类人员:经理、兼职技术人员、销售经理和兼职推销员。要求存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 人员编号基数为 1000,每输入一个人员信息编号顺序加 1。 程序要对所有人员有提升级别的功能。本例中为简单起见,所有人员的初始级别均为1级,然后进行升级,经理升为4级,兼职技术人员和销售经理升为3级,推销员仍为1级。 月薪计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销员的月薪按该推销员当月销售额的4%提成;销售经理既拿固定月薪也领取销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售总额的5%0。 二、类设计 根据上述需求,设计一个基类employee,然后派生出technician(兼职技术人员)类和salesman(兼职推销员)类。由于销售经理既是经理又是销售人员,兼具两类人员的特点,因此同时继承 technician和 salesman两个类。(多继承) 在基类中,除了定义构造函数和析构函数以外,还应统一定义对各类人员信息都应有的操作,这样可以规范类族中各派生类的基本行为。但是各类人员的月薪计算方法不同,不能在基类employee中统一定义计算方法。各类人员信息的显示内容也不同,同样不能在基类employee中统一定义显示方法。因此,在本例中可以使基类中定义上述行为的函数体为空,然后在派生类中再根据同名覆盖原则定义各自的同名函数实现具体功能。类图设计如图所示。 小型公司人员信息管理系统类图 由于本例的问题比较简单,因此对于类图中各类属性的详细说明请参看源程序注释。 由于salesmanager类的两个基类,又有公共基类employee,为了避免二义性,这里将employee设计为虚基类。 三、源程序及说明 整个程序分为三个独立文档:employee.h是类定义头文件,empfunc.cpp是类实现文件,b7-10.CPP是主函数文件。 (源程序见附件。) 在上述程序中,每个派生类只定义自己新增的成员,基类的成员都被原样继承过来。派生类的构造函数只需初值化本类的新增成员,在建立派生类对象时,系统首先调用基类的构造函数来初始化从基类继承的成员,然后再调用派生类的构造函数初始化新增数据成员。 由于每个派生类都有与基类成员函数同名的成员函数 pay()和 displayStatus(),在main()函数中,当通过派生类的对象调用这两个函数时,根据同名覆盖原则,系统将调用派生类的同名函数。基类的空函数 pay()和 displayStatus()只起到对类族的基本行为进行规范的作用。 员工编号是以1000为基数,顺序增1生成的。静态数据成员employeeNo在类外进行初始化,为整个类所有对象共有。 程序结束之前,系统会自动调用基类的析构函数释放动态分配的内存空间。 这个程序有两点不足: ①基类的成员函数 pay()和 displayStatus()的函数体均为空,在实现部分仍要写出函数体,显得冗余。但是为了统一规定类族的基本行为,又不得不如此。下一讲介绍的虚函数可解决这一问题。 ②在 main()函数中,建立了四个不同类的对象,对它们进行了类似的操作,但是却重复写了四遍类似的语句,程序不够简洁。是否可以依据赋值兼容规则,考虑用指向基类对象的指针数组来处理多个派生类对象呢?用目前我们掌握的方法还不行,因为通过基类类型的指针只能访问到基类的成员,但这里是需要访问每个派生类自己的函数pay()和displayStatus()。同样,这个问题也可以应用下一章介绍的虚函数来解决。

文档评论(0)

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

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

1亿VIP精品文档

相关文档