一个教师(Teacher)类和一个学生(Student)类,用多重继承的方式声明一个研究生(Graduate)派生类。
(1)教师类中包括数据成员name(姓名)、age(年龄)、title(职称);成员函数display。学生类中包括数据
成员name(姓名)、age(年龄)、score(成绩)以及成员函数display。
(2)如何调整继承架构使Graduate中只含有一份数据成员name(姓名)、age(年龄),并用成员函数show
应用将所继承的成员和自身增加成员进行输出
(3)在定义派生类对象时要求给出初始化的数据。实现多重继承时应处理好重复成员的二义性问题
(4)自行设计代码,使之实现父类与子类之间的赋值兼容
#include<iostream>
#include<string>
using namespace std;
class Person{
public:
Person(string nam,int a){
name=nam;
age=a;
}
protected:
string name;
int age;
};
class Teacher:virtual public Person{
public:
Teacher(string nam,int a,string tit):Person(nam,a){
title=tit;
}
void display();
protected:
string title;
};
class Student:virtual public Person{
public:
Student(string nam,int a,double sco):Person(nam,a){
score=sco;
}
void display();
protected:
double score;
};
class Graduate:public Teacher,public Student{
public:
Graduate(string nam,int a,string tit,double sco):Person(nam,a),Teacher(nam,a,tit),Student(nam,a,sco){
}
void show(){
cout<<"name: "<<name<<endl;
cout<<"age: "<<age<<endl;
cout<<"title: "<<title<<endl;
cout<<"score: "<<score<<endl;
}
};
int main(){
Graduate g1("Jack",25,"teacher",100);
g1.show();
return 0;
}