例 1:建立一个简单的大学管理系统,其中有学生类、职工类、教师类和在职大学生类,类的继承关系如下图:
其中,Data_rec 是虚基类,它包含了所有派生类共有的数据成员,职工类 Employee 和学生类 Student 为虚基类 Data_rec 的派生类,教师类 Teacher 为职工类 Employee 的派生类,在职大学生类 E_Student 是职工类 Employee 和学生类 Student 的共同派生类。每个类定义了一个相对于特定类的不同的 print 函数,输出各类的数据成员。
#include<iostream>
#include<string>
using namespace std;
class Data_rec{
//声明基类 Data_rec
protected:
string name; //姓名
char sex; //性别
int age; //年龄
public:
Data_rec(string name1,char sex1,int age1){
//声明基类 Data_rec
name=name1;
sex=sex1;
age=age1;
}
void print(){
cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
cout<<"sex:"<<sex<<endl;
}
};
class Student:virtual public Data_rec{
//声明类 Data_rec 是 St