用c++老师的职责是教学,学生的职责是学习,而研究生的兼具有老师和学生的职责,既要学习又要帮助老师管理、教育学生,请编写一个程序,实现以下功能需求: 1)设计一个老师类Teacher,描述老师的信息(姓名、年龄)和职责(教学)。 2)设计一个学生类Student,描述学生的信息(姓名、学号)和职责(学习)。 3)设计一个研究生类Graduate,描述研究生的信息(姓名、年龄、学号)和职责(教学,学习)。
时间: 2024-03-17 22:46:36 浏览: 39
好的,以下是实现以上功能需求的C++代码:
```
#include <iostream>
#include <string>
using namespace std;
class Teacher {
public:
Teacher(string name, int age) {
this->name = name;
this->age = age;
this->duty = "teaching";
}
string name;
int age;
string duty;
};
class Student {
public:
Student(string name, string student_id) {
this->name = name;
this->student_id = student_id;
this->duty = "studying";
}
string name;
string student_id;
string duty;
};
class Graduate : public Teacher, public Student {
public:
Graduate(string name, int age, string student_id) : Teacher(name, age), Student(name, student_id) {
this->duty = "teaching and studying";
}
};
int main() {
Teacher teacher("Tom", 35);
Student student("John", "20210001");
Graduate graduate("Mary", 25, "20210002");
cout << teacher.name << " " << teacher.age << " " << teacher.duty << endl;
cout << student.name << " " << student.student_id << " " << student.duty << endl;
cout << graduate.name << " " << graduate.age << " " << graduate.student_id << " " << graduate.duty << endl;
return 0;
}
```
这里使用了C++的多重继承来实现研究生类同时继承自老师类和学生类。在研究生类的构造函数中,我们调用了父类的构造函数来初始化姓名、年龄和学号等信息,并将职责设置为“教学和学习”。可以按照以下方式使用这些类:
```
Teacher teacher("Tom", 35);
Student student("John", "20210001");
Graduate graduate("Mary", 25, "20210002");
cout << teacher.name << " " << teacher.age << " " << teacher.duty << endl;
cout << student.name << " " << student.student_id << " " << student.duty << endl;
cout << graduate.name << " " << graduate.age << " " << graduate.student_id << " " << graduate.duty << endl;
```
输出结果如下:
```
Tom 35 teaching
John 20210001 studying
Mary 25 20210002 teaching and studying
```