HM152 员工抽象指针
HM152 员工抽象指针
来源: 第 152 集 职工管理系统-职工抽象类和普通员工类实现
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
普通员工、经理、老板都要抽象到基类 Worker 里,再用多态管理。Worker 的属性是职工编号 mId、姓名 mName、部门编号 mDeptId;行为是两个纯虚函数:showInfo()(岗位职责描述)和 getDeptName()(获取岗位名称)。含纯虚函数的类不能直接实例化。
请再实现普通员工类 Employee,以 public 方式继承 Worker。构造函数接收编号、姓名、部门编号,并写到 this 的三个成员上。getDeptName() 必须返回 string("员工")。showInfo() 输出编号、姓名、岗位和职责,其中岗位必须调用 getDeptName(),职责固定为 完成经理交给的任务。
测试时先把基类指针写成空:Worker* worker = NULL;,再 new Employee(...),调用 showInfo(),最后 delete worker。不能直接 new Worker。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 100\))。
接下来 \(n\) 行,每行一个整数编号 \(id\)、一个不含空白的姓名 \(s\)、一个部门编号 \(d\)(\(1 \le id \le 10^6\),\(1 \le |s| \le 20\),本题 \(d\) 均为 \(1\))。
输出格式
共 \(n\) 行。每行格式为:
职工编号: \(id\) 职工姓名: \(s\) 岗位: 员工 岗位职责:完成经理交给的任务
四段之间各一个空格,行末换行。岗位名必须来自 getDeptName()。
样例
输入 #1
1
1 张三 1
输出 #1
职工编号:1 职工姓名:张三 岗位:员工 岗位职责:完成经理交给的任务
输入 #2
2
5 Alice 1
8 Bob 1
输出 #2
职工编号:5 职工姓名:Alice 岗位:员工 岗位职责:完成经理交给的任务
职工编号:8 职工姓名:Bob 岗位:员工 岗位职责:完成经理交给的任务
说明
showInfo与getDeptName在基类里必须是纯虚函数。- 岗位不要写成部门编号,也不要写死在
showInfo里而不调用getDeptName。 - 用完对象要通过基类指针释放。
信息
- ID
- 1151
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者