编程实现基类Employee,派生类Manager和HourlyWorker。Employee有数据成员name和ID;Manager有数据成员sal,代表经理的月工资; HourlyWorker有wage,hours和sal,分别代表钟点工的每小时工资数、月工作时数和月工资总数,并创建成员函数salllay()求出钟点工的月工资总数=每小时工资数*月工作时数。定义的所有类中都必须包含构造函数,最终输出所有数据的值。
时间: 2024-03-14 22:46:00 浏览: 64
好的,这是一个简单的继承的例子,下面是实现的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Employee {
public:
Employee(string name, int ID) : name(name), ID(ID) {}
protected:
string name;
int ID;
};
class Manager : public Employee {
public:
Manager(string name, int ID, double sal) : Employee(name, ID), sal(sal) {}
private:
double sal;
};
class HourlyWorker : public Employee {
public:
HourlyWorker(string name, int ID, double wage, double hours) : Employee(name, ID), wage(wage), hours(hours) {
sallary = sallary();
}
double sallary() {
return wage * hours;
}
void printSallary() {
cout << "Month Sallary of " << name << " is " << sallary << endl;
}
private:
double wage;
double hours;
double sallary;
};
int main() {
Manager m("Tom", 123, 10000.0);
HourlyWorker h("Jerry", 456, 50.0, 200.0);
h.printSallary();
return 0;
}
```
在这个例子中,我们定义了一个基类 Employee ,里面包含了两个数据成员 name 和 ID ,然后我们定义了两个派生类 Manager 和 HourlyWorker ,分别表示经理和小时工。派生类中的数据成员分别是 sal,wage,hours 和 sallary 。其中,Manager 只有 sal 一个数据成员,HourlyWorker 中有 wage 和 hours 两个数据成员,还有一个 sallary 计算薪资的数据成员。在 HourlyWorker 中,我们重载了构造函数,并且新增了一个计算月工资的函数 sallary() 和一个打印月工资的函数 printSallary() 。最后在 main 函数中,我们创建了一个 Manager 对象和一个 HourlyWorker 对象,并且打印了 HourlyWorker 对象的月工资。
阅读全文