定义一个学生类Student和教师类Teacher,学生类的数据成员有姓名、学号、专业,教师类的数据成员有姓名、工作证号、职称、课程、每周课时数。再定义一个助教类TA,继承学生类和教师类,该类可以使用学生类的全部数据成员以及教师类的课程和每周课时数的数据成员。要求:每个类提供自定义的构造函数和析构函数,并通过同名函数ShowInfo来显示全部数据成员的值。
时间: 2023-11-22 16:52:06 浏览: 119
以下是对应的代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
string id;
string major;
public:
// 自定义构造函数
Student(string n, string i, string m) : name(n), id(i), major(m) {}
// 自定义析构函数
~Student() {}
// 显示学生信息
void ShowInfo() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "专业:" << major << endl;
}
};
class Teacher {
private:
string name;
string work_id;
string title;
string course;
int hours_per_week;
public:
// 自定义构造函数
Teacher(string n, string w, string t, string c, int h) :
name(n), work_id(w), title(t), course(c), hours_per_week(h) {}
// 自定义析构函数
~Teacher() {}
// 显示教师信息
void ShowInfo() {
cout << "姓名:" << name << endl;
cout << "工作证号:" << work_id << endl;
cout << "职称:" << title << endl;
cout << "课程:" << course << endl;
cout << "每周课时数:" << hours_per_week << endl;
}
};
class TA : public Student, public Teacher {
public:
// 自定义构造函数
TA(string n, string i, string m, string w, string t, string c, int h) :
Student(n, i, m), Teacher(n, w, t, c, h) {}
// 自定义析构函数
~TA() {}
// 显示助教信息
void ShowInfo() {
Student::ShowInfo(); // 调用学生类的 ShowInfo 函数
Teacher::ShowInfo(); // 调用教师类的 ShowInfo 函数
}
};
int main() {
TA ta("小明", "20210101", "计算机科学与技术", "10001", "讲师", "算法设计与分析", 8);
ta.ShowInfo();
return 0;
}
```
在主函数中,我们创建了一个名为`ta`的`TA`对象,传入了各自的数据成员,然后调用`ta.ShowInfo()`函数来显示助教的全部信息。在`TA`类中,我们通过继承`Student`类和`Teacher`类来使用它们的数据成员,并且覆盖了`ShowInfo`函数来实现显示助教信息的功能。
阅读全文