Person人类有姓名、性别和年龄属性,有吃饭和行走的方法;Student学生类是人类中的一种,学生类特有分数属性和学习、考试方法;Teacher老师类也是人类中的一种,老师类特有的成员有工资属性和讲课方法;Assistant助教既是学生类中的一种,也是老师类中的一种。用C++写
时间: 2024-03-25 22:35:21 浏览: 106
下面是您所需求的C++代码:
```
#include <iostream>
#include <string>
using namespace std;
class Person {
protected:
string name;
char gender;
int age;
public:
Person(string n, char g, int a) : name(n), gender(g), age(a) {}
virtual ~Person() {}
virtual void walk() { cout << "行走" << endl; }
virtual void eat() { cout << "吃饭" << endl; }
};
class Student : virtual public Person {
protected:
int score;
public:
Student(string n, char g, int a, int s) : Person(n, g, a), score(s) {}
virtual ~Student() {}
virtual void study() { cout << "学习" << endl; }
virtual void test() { cout << "考试" << endl; }
};
class Teacher : virtual public Person {
protected:
double salary;
public:
Teacher(string n, char g, int a, double s) : Person(n, g, a), salary(s) {}
virtual ~Teacher() {}
virtual void teach() { cout << "讲课" << endl; }
};
class Assistant : public Student, public Teacher {
public:
Assistant(string n, char g, int a, int s, double sal) : Person(n, g, a), Student(n, g, a, s), Teacher(n, g, a, sal) {}
virtual ~Assistant() {}
virtual void help() { cout << "帮助" << endl; }
};
int main() {
Assistant a("Tom", 'M', 25, 80, 5000.0);
a.walk();
a.eat();
a.study();
a.test();
a.teach();
a.help();
return 0;
}
```
在这段代码中,我们定义了4个类,分别是Person、Student、Teacher和Assistant。Person类是一个基类,Student和Teacher类分别是Person类的派生类,Assistant类同时继承自Student和Teacher类,是一个多重继承的派生类。
在Person类中,我们定义了姓名、性别和年龄三个成员变量,以及行走和吃饭两个成员函数。在Student类中,我们除了继承了Person类的成员变量和成员函数之外,还定义了分数属性、学习和考试方法。在Teacher类中,我们除了继承了Person类的成员变量和成员函数之外,还定义了工资属性和讲课方法。在Assistant类中,我们继承了Student和Teacher类的所有成员变量和成员函数,同时还定义了帮助方法。
在main()函数中,我们定义了一个Assistant对象a,并调用了该对象的各种成员函数。
阅读全文