设计一个基类:学生类(Student),采用公有继承的方式派生出一个研究生类(PostGraduate)。

设计一个基类:学生类 (Student), 采用公有继承的方式派生出一个研究生类 (PostGraduate)
要求 :
1 Student 类中包含:学号、姓名、性别、专业。
2 )要求在 PostGraduate 类中增加导师( tutor )、津贴( allowance )、研究方向 (researchArea)
3 )两个类中都包含: display() 函数,用于输出本类中的成员信息。可以用如下代码测试所建立的类是
否正确。
int main()
{
        Student s1(“20190001”, “Michael”, “Male”, “Computer Science”);
        //参数分别为:学号,姓名,性别,专业
         s1.display();
        PostGraduate p1(……);//导师: “Liu”, 津贴: “1000”, 研究方向: “Deep learning”
        p1.display();
        return 0;
}
#include<iostream>
using namespace std;
class Student{ //定义Student类
public:
    Student(){} //基类默认构造函数
    Student(int ID,string name,string sex,string major):
        ID(ID),name(name),sex(sex),major(major){}
    Student(Student &p):ID(p.ID),name(p.name),sex(p.sex),major(p.major){}
    ~Student(){} //基类析构函数
    void display()const; //常成员函数,只用于输出数据
private: //基类私有成员
    int ID;
    string name,sex,major;
};
//输出基类成员信息函数
void Student::display()const{
    cout<<endl<<"ID:"<<ID<<" "<<"name:"<<name<<" "
    <<"sex:"<<sex<<" "<<"major:"<<major<<endl;
}
class PostGraduate:public Student{//公有继承
public:
    PostGraduate(){} //派生类的默认构造函数
    PostGraduate(int ID,string name,string sex,string major,
    string tutor,float allowance,string researchArea):
        Student(ID,name,sex,major),
        tutor(tutor),allowance(allowance),researchArea(researchArea){}
    PostGraduate(PostGraduate &p):tutor(p.tutor),allowance(p.allowance),
        researchArea(p.researchArea){}
    ~PostGraduate(){} //派生类的析构函数
    void display()const; //派生类常成员函数
private:
    float allowance;
    string tutor,researchArea;
};
//输出派生类成员信息
void PostGraduate::display()const{
    Student::display();
    cout<<endl<<"tutor:"<<tutor<<" "<<"researchArea:"<<researchArea<<" "
        <<"allowance:"<<allowance<<endl;
}
int main()
{
    Student s1(20190001,"Michael","Male","Computer Science");
    cout<<"Student类中的成员信息:"<<endl;
    s1.display();//调用基类的公有成员函数,输出基类成员信息
    PostGraduate p1(20190001,"Michael","Male","Computer
    Science","liu",1000,"Deep learning");
    cout<<endl<<endl<<"PostGraduate类中的成员信息:"<<endl;
    p1.display();//调用派生类的公有成员函数,输出派生类成员信息
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值