抽象类Employee:这是所有员工总的父类; 数据成员:员工的姓名,员工的生日月份。 成员函数:string getname(),获取员工姓名;float getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公 司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。 数据成员:月薪 写一个程序,把若干各种类型的员工放在一个 Employee 数组里,写一个函数,打印 出某月每个员工的工资数额。
时间: 2024-03-22 10:42:30 浏览: 32
好的,根据您提供的信息,可以按照以下方式实现这个问题:
```python
#include <iostream>
#include <string>
using namespace std;
// 定义员工类
class Employee {
public:
// 构造函数
Employee(string name, int birthMonth) {
this->name = name;
this->birthMonth = birthMonth;
}
// 纯虚函数,获取员工工资
virtual float getSalary(int month) = 0;
// 成员函数,获取员工姓名
string getName() {
return name;
}
protected:
// 数据成员,员工姓名、员工生日月份
string name;
int birthMonth;
};
// 定义拿固定工资的员工类
class SalariedEmployee : public Employee {
public:
// 构造函数
SalariedEmployee(string name, int birthMonth, float salary) : Employee(name, birthMonth) {
this->salary = salary;
}
// 实现纯虚函数,获取员工工资
float getSalary(int month) {
float bonus = (month == birthMonth) ? 100.0 : 0.0;
return salary + bonus;
}
private:
// 数据成员,员工月薪
float salary;
};
// 打印某月每个员工的工资数额
void printSalary(Employee** employees, int numEmployees, int month) {
for (int i = 0; i < numEmployees; i++) {
cout << employees[i]->getName() << ": " << employees[i]->getSalary(month) << endl;
}
}
int main() {
// 测试代码
Employee* employees[3];
employees[0] = new SalariedEmployee("张三", 1, 5000);
employees[1] = new SalariedEmployee("李四", 2, 6000);
employees[2] = new SalariedEmployee("王五", 3, 7000);
printSalary(employees, 3, 2);
return 0;
}
```
这个程序定义了一个抽象的员工类和一个拿固定工资的员工类,使用纯虚函数来实现抽象类的功能。然后通过一个数组来存储所有的员工,以及一个函数来打印某月每个员工的工资数额。程序可以根据需要进行扩展,增加新类型的员工等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)