定义人员类Person,它派生出学生类Student和教师类Teacher,学生类和教师类又共同派生出助教类RA。在主函数中使用构造函数初始化助教类对象的信息并打印输出。 公有继承实现 Name:San Zhang 人员类有姓名、性别、出生年月 Sex:M 学生类有学号、专业信息 Birth:1976-05-27 教师类有所属学校信息 ID:2023007 Major:Computer Science Affiliation:CTBU
时间: 2024-01-21 21:17:03 浏览: 109
以下是实现您所需的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
protected:
string name;
string sex;
string birth;
public:
Person(string n, string s, string b): name(n), sex(s), birth(b) {}
};
class Student : public Person {
private:
string id;
string major;
public:
Student(string n, string s, string b, string i, string m): Person(n, s, b), id(i), major(m) {}
};
class Teacher : public Person {
private:
string affiliation;
public:
Teacher(string n, string s, string b, string a): Person(n, s, b), affiliation(a) {}
};
class RA : public Student, public Teacher {
public:
RA(string n, string s, string b, string i, string m, string a): Student(n, s, b, i, m), Teacher(n, s, b, a) {}
};
int main() {
RA ra("San Zhang", "M", "1976-05-27", "2023007", "Computer Science", "CTBU");
cout << "Name: " << ra.Student::name << endl;
cout << "Sex: " << ra.Student::sex << endl;
cout << "Birth: " << ra.Student::birth << endl;
cout << "ID: " << ra.id << endl;
cout << "Major: " << ra.major << endl;
cout << "Affiliation: " << ra.affiliation << endl;
return 0;
}
```
在上述代码中,我们定义了一个`Person`类,它是`Student`和`Teacher`类的基类。`Student`类和`Teacher`类都分别继承了`Person`类,并且分别添加了自己的成员变量。`RA`类同时继承了`Student`类和`Teacher`类,因此具有这两个类的所有成员变量和方法。
在主函数中,我们创建了一个`RA`对象并初始化了它的成员变量。然后,我们打印输出助教对象的姓名、性别、出生年月、学号、专业信息和所属学校信息。请注意,我们使用作用域解析运算符来访问基类和派生类的成员变量,以避免成员变量重名的问题。
阅读全文