1. 设计一个基类:学生类(Student),采用公有继承的方式派生出一个研究生类(PostGraduate),要求: (1)Student类中包含:学号、姓名、性别、专业。 (2)要求在PostGraduate类中增加导师(tutor)、津贴(allowance)、研究方向(research)。 (3)两个类中都包含:display()函数,用于输出本类中的成员信息。 可以用如下代码测试所建立的类是否正确。 int main() { Student s1(“20190001”, “Michael”, “Male”, “Computer Science”); //参数分别为:学号,姓名,性别,专业 s1.display(); PostGraduate p1(……);//导师:“Liu”,津贴:“1000”,研究方向:“Deep learning” p1.display(); return 0; }
时间: 2024-03-25 19:35:47 浏览: 104
好的,我来帮你解答这个问题。
以下是代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
Student(string id, string name, string gender, string major) {
m_id = id;
m_name = name;
m_gender = gender;
m_major = major;
}
void display() {
cout << "学号:" << m_id << endl
<< "姓名:" << m_name << endl
<< "性别:" << m_gender << endl
<< "专业:" << m_major << endl;
}
private:
string m_id;
string m_name;
string m_gender;
string m_major;
};
class PostGraduate : public Student {
public:
PostGraduate(string id, string name, string gender, string major, string tutor, int allowance, string research)
: Student(id, name, gender, major) {
m_tutor = tutor;
m_allowance = allowance;
m_research = research;
}
void display() {
Student::display();
cout << "导师:" << m_tutor << endl
<< "津贴:" << m_allowance << endl
<< "研究方向:" << m_research << endl;
}
private:
string m_tutor;
int m_allowance;
string m_research;
};
int main() {
Student s1("20190001", "Michael", "Male", "Computer Science");
s1.display();
PostGraduate p1("20190123", "Alice", "Female", "Artificial Intelligence", "Liu", 1000, "Deep learning");
p1.display();
return 0;
}
```
程序的运行结果如下:
```
学号:20190001
姓名:Michael
性别:Male
专业:Computer Science
学号:20190123
姓名:Alice
性别:Female
专业:Artificial Intelligence
导师:Liu
津贴:1000
研究方向:Deep learning
```
在这个程序中,我们定义了一个基类 `Student`,其中包含了学号、姓名、性别、专业等基本信息;然后我们采用公有继承的方式派生出一个研究生类 `PostGraduate`,在该类中增加了导师、津贴、研究方向等信息,并重写了 `display()` 函数以输出所有的信息。在 `main()` 函数中,我们分别创建了一个学生对象和一个研究生对象,并测试了这两个类的成员函数 `display()` 是否能够正确输出信息。
阅读全文