c++公开继承,自己编码,我不会

老师的职责是教学,学生的职责是学习,研究生兼具老师和学生的职责,既要学习,又要帮助老师管理和教育学生。请采用公有继承方式编写一个程序,实现以下功能:

  1. 设计一个老师类Teacher,描述老师的信息(姓名name_,年龄age_)和职责行为(教学void teach( ) );
  2. 设计一个学生类Student,描述学生的信息(姓名name_,学号numberId_)和职责行为(学习void learn( ) );
  3. 设计一个研究生类Graduate,描述研究生的信息(姓名,年龄,学号)和职责行为(教学void teach( ),学习void learn( ) )。
  4. Teacher类、Student类和Graduate类均需实现含参构造函数,参数为成员变量名,子类Graduate调用父类构造函数实现初始化。
    注:teach( )函数输出:姓名(年龄)能够教学; learn()函数输出:姓名(年龄,学号)可以学习。
    实现以上过程,将类声明截图(截图9-1),将类定义截图(截图9-2),编写main函数测试以上功能,输出打印结果(截图9-3)

回答:截图

img

#include <iostream>
using namespace std;

class Teacher {
public:
    string name;
    int age;

    Teacher(string _name, int _age) {
        this->name = _name;
        this->age = _age;
    }

    void teach() {
        cout << this->name << "(" << this->age << ")" << "能够教学" << endl;
    }
};

class Student {
public:
    string name;
    int age;
    string numberid;

    Student(string _name, string _numberid, int _age) {
        this->name = _name;
        this->numberid = _numberid;
        this->age = _age;
    }
    void learn() {
        cout << this->name << "(" << this->age << "," << this->numberid << ")" << "能够学习" << endl;
    }
};

class Graduate : public Teacher, public Student {
public:
    Graduate(string _name, string _numberid, int _age) :Teacher(_name, _age), Student(_name, _numberid, _age) {}
};

int main() {
    Teacher tea("冰冰一号", 25);
    Student stu("冰冰", "2019", 20);
    Graduate gra("一号", "2020", 21);

    tea.teach();
    stu.learn();
    gra.teach();
    gra.learn();
}