6. 设计person类,包括私有数据成员:姓名;设计student类继承person类,新增私有数据成员:班级;设计类worker继承person类,新增私有数据成员:职业;设计类studentworker继承student类和worker类,新增私有数据成员:工资;在主函数中定义一个studentworker类的对象,调用该对象的show函数输出该对象的信息。
时间: 2024-02-21 14:01:32 浏览: 115
C++课程设计-----教职工信息管理
下面是实现上述要求的C++代码:
```cpp
#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", "Class 1", "Teacher", 3000.0);
sw.show();
return 0;
}
```
在上述代码中,我们先定义了一个基类Person,它有一个私有数据成员name和一个虚函数show(),用于输出名字。然后我们定义了一个派生类Student,它新增了一个私有数据成员className,并重写了基类的show()函数,用于输出班级信息。接着我们定义了另一个派生类Worker,它新增了一个私有数据成员job,并重写了基类的show()函数,用于输出职业信息。最后我们定义了一个多重继承类StudentWorker,它同时继承了Student和Worker类,并新增了一个私有数据成员salary,用于存储工资信息。它也重写了基类的show()函数,用于输出学生和工人的信息以及工资信息。
在主函数中,我们定义了一个StudentWorker类的对象sw,并调用了它的show()函数,输出了该对象的信息。
阅读全文