定义一个生日Birthday类、一个教师(Teacher)类和一个学生(Student)类,用多重继承的方式声明一个研究生(Graduate)派生类。
(1)教师类中包括数据成员name(姓名)、age(年龄)、title(职称);成员函数display。学生类中包括数据成员name(姓名)、age(年龄)、score(成绩)以及成员函数display。研究生(Graduate)类中增加入职日期,入学日期和生日,这三类均为对象成员(Birthday类的对象)。教师类、学生类中添加display成员函数进行信息的输出。
(2)要求各类均需要定义带参数的构造函数。
(3)如何调整继承架构使Graduate中只含有一份数据成员name(姓名)、age(年龄),并用成员函数show应用将所继承的成员和自身增加成员进行输出
(4)在定义派生类对象时要求给出初始化的数据。实现多重继承时应处理好重复成员的二义性问题
(5)自行设计代码,使之在main函数中实现父类与子类之间的直接赋值,以及指针指向兼容
#include <iostream>
using namespace std;
class Birthday{
public:
int entryDate=20220429;
int dataOfAdmission=20210912;
int birthday=20020913;
};
class Teacher{
public:
char *name="tang";
int age=28;
char *title="teacher";
void display(){
cout<<"Teacher name="<<name<<endl;
cout<<"Teacher age="<<age<<endl;
cout<<"Teacher title="<<title<<endl;
}
};
class Student{
public:
char *name="peng";
int age=18;
float score=99.2;
void display(){
cout<<"student name="<<name<<endl;
cout<<"student age="<<age<<endl;
cout<<"student score="<<score<<endl;
}
};
class Graduate:public Birthday {
public:
//自身增加成员
char *name="lihua";
int age=20;
};
void show(){
Graduate bi;
cout<<"GraduateentryDate is ="<<bi.entryDate<<endl;
cout<<"GraduatedataOfAdmission is ="<<bi.dataOfAdmission<<endl;
cout<<"Graduatebirthday is= "<<bi.birthday<<endl;
cout<<"Graduate age is="<<bi.age<<endl;
cout<<"Graduate name is= "<<bi.name<<endl;
}
int main(){
Teacher te;
te.display();
cout<<"------------------------"<<endl;
Student st;
st.display();
cout<<"------------------------"<<endl;
show();
cout<<"------------------------"<<endl;
//)使之在main函数中实现父类与子类之间的直接赋值,以及指针指向兼容
Birthday p;
Graduate c;
Birthday *pp=NULL;
Graduate *cp=NULL;
pp=&c;
Graduate s;
Birthday d=s;
return 0;
}