定义描述职工档案的类Archives,其数据成员为职工号(No[5])、姓名(Name[8])、性别(Sex)、年龄(Age),成员函数为构造函数、显示职工信息的函数Show()。再由职工档案类派生职工工资类Laborage,在职工工资类Laborage中新增加的数据成员为应发工资(Ssalary)、社保金(Security)、实发工资(Fsalary),成员函数为构造函数、显示职工档案及工资的函数。在主函数中用类Laborage定义职工对象lab,并为其赋初始值,然后显示职工档案与工资。
时间: 2023-12-03 16:45:47 浏览: 7
以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Archives {
private:
string No[5];
string Name[8];
string Sex;
int Age;
public:
Archives(string no, string name, string sex, int age) {
No[5] = no;
Name[8] = name;
Sex = sex;
Age = age;
}
void Show() {
cout << "职工号:" << No << endl;
cout << "姓名:" << Name << endl;
cout << "性别:" << Sex << endl;
cout << "年龄:" << Age << endl;
}
};
class Laborage : public Archives {
private:
double Ssalary; // 应发工资
double Security; // 社保金
double Fsalary; // 实发工资
public:
Laborage(string no, string name, string sex, int age, double ssalary, double security, double fsalary) : Archives(no, name, sex, age) {
Ssalary = ssalary;
Security = security;
Fsalary = fsalary;
}
void Show() {
Archives::Show(); // 先调用基类的 Show 函数
cout << "应发工资:" << Ssalary << endl;
cout << "社保金:" << Security << endl;
cout << "实发工资:" << Fsalary << endl;
}
};
int main() {
Laborage lab("1001", "张三", "男", 25, 5000, 1000, 4000);
lab.Show();
return 0;
}
```
输出结果:
```
职工号:1001
姓名:张三
性别:男
年龄:25
应发工资:5000
社保金:1000
实发工资:4000
```
阅读全文