6. 设计person类,包括私有数据成员:姓名;设计student类继承person类,新增私有数据成员:班级;设计类worker继承person类,新增私有数据成员:职业;设计类studentworker继承student类和worker类,新增私有数据成员:工资;在主函数中定义一个studentworker类的对象,调用该对象的show函数输出该对象的信息。
时间: 2024-02-21 12:00:18 浏览: 62
设计一个人类person,包括人员编号和姓名等数据成员以及相关的成员函数
以下是实现上述要求的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
private:
string name;
public:
Person(string n) : name(n) {}
virtual void show() {
cout << "Name: " << name << endl;
}
};
class Student : public Person {
private:
string className;
public:
Student(string n, string c) : Person(n), className(c) {}
void show() {
Person::show();
cout << "Class: " << className << endl;
}
};
class Worker : public Person {
private:
string job;
public:
Worker(string n, string j) : Person(n), job(j) {}
void show() {
Person::show();
cout << "Job: " << job << endl;
}
};
class StudentWorker : public Student, public Worker {
private:
double salary;
public:
StudentWorker(string n, string c, string j, double s)
: Student(n, c), Worker(n, j), salary(s) {}
void show() {
Student::show();
Worker::show();
cout << "Salary: " << salary << endl;
}
};
int main() {
StudentWorker sw("Tom", "Class1", "Teacher", 3000);
sw.show();
return 0;
}
```
在上述代码中,我们使用了多重继承,将 `Student` 和 `Worker` 类同时继承 `Person` 类。在 `StudentWorker` 类中,我们需要分别调用 `Student` 和 `Worker` 类的 `show()` 函数,以便输出所有的信息。同时,我们新增了 `salary` 数据成员,用于存储工资信息。在 `main()` 函数中,我们定义了一个 `StudentWorker` 类的对象 `sw`,并调用了其 `show()` 函数,以输出该对象的信息。
阅读全文