设计一个基类:学生类
(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;
}