使用简单化类层次结构表示公司以前和现在的雇员状况,c++
时间: 2023-08-10 22:11:59 浏览: 77
可以使用类的继承来表示公司的雇员状况。下面是一个基本的示例代码:
```c++
#include <iostream>
using namespace std;
// 基类,表示所有雇员的共同特征
class Employee {
protected:
string name;
int age;
string position;
public:
Employee(string n, int a, string p) : name(n), age(a), position(p) {}
virtual void display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "职位:" << position << endl;
}
};
// 派生类,表示普通员工
class Staff : public Employee {
protected:
double salary;
public:
Staff(string n, int a, string p, double s) : Employee(n, a, p), salary(s) {}
virtual void display() {
Employee::display(); // 调用基类的 display 函数
cout << "工资:" << salary << endl;
}
};
// 派生类,表示经理
class Manager : public Employee {
protected:
double bonus;
public:
Manager(string n, int a, string p, double b) : Employee(n, a, p), bonus(b) {}
virtual void display() {
Employee::display(); // 调用基类的 display 函数
cout << "奖金:" << bonus << endl;
}
};
int main() {
Employee* p;
Staff s("张三", 25, "普通员工", 5000);
Manager m("李四", 35, "经理", 10000);
p = &s; // 基类指针指向派生类对象
p->display(); // 调用 Staff 的 display 函数
cout << endl;
p = &m; // 基类指针指向派生类对象
p->display(); // 调用 Manager 的 display 函数
return 0;
}
```
在上面的示例代码中,`Employee` 是基类,表示所有雇员的共同特征,包括姓名、年龄和职位。`Staff` 和 `Manager` 是派生类,分别表示普通员工和经理,它们继承了基类的成员变量和成员函数,并且新增了自己的特征。`display` 函数是虚函数,允许基类指针指向派生类对象,并且调用派生类的特定实现。在 `main` 函数中,通过基类指针分别访问了派生类对象的成员。
阅读全文