设计person类,包括私有数据成员:姓名;设计student类继承person类,新增私有数据成员:班级;设计类worker继承person类,新增私有数据成员:职业;设计类studentworker继承student类和worker类,新增私有数据成员:工资;在主函数中定义一个studentworker类的对象,调用该对象的show函数输出该对象的信息。
时间: 2024-02-21 19:56:59 浏览: 76
下面是一个简单的实现:
```cpp
#include <iostream>
using namespace std;
class Person {
private:
string name;
public:
Person(string n): name(n) {}
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("Alice", "Class A", "Engineer", 10000.0);
sw.show();
return 0;
}
```
在这个实现中,我们使用了多重继承,即 `StudentWorker` 类同时继承了 `Student` 和 `Worker` 类。由于 `Student` 和 `Worker` 类都继承了 `Person` 类,因此 `StudentWorker` 类也拥有了 `Person` 类中的 `name` 数据成员和 `show()` 成员函数。
在 `Student` 和 `Worker` 类中,我们使用了 `Person::show()` 来调用 `Person` 类中的 `show()` 函数,这样可以避免出现歧义。在 `StudentWorker` 类中,我们调用了 `Student::show()` 和 `Worker::show()` 来输出 `Student` 和 `Worker` 类的信息,再输出 `salary` 数据成员的信息。
阅读全文