#include<iostream>
#include<string>
using namespace std;
class base
{
public:
base(string name1,int age1)
{
name=name1;
age=age1;
}
void print()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
}
private:
string name;
int age;
};
class leader:virtual public base
{
public:
leader(string name1,int age1,string work1,string dept1):
base(name1,age1)
{
work=work1;
dept=dept1;
}
void print()
{
base::print();
cout<<"职务:"<<work<<endl;
cout<<"部门:"<<dept<<endl;
}
private:
string work;
string dept;
};
class engieer:virtual public base
{
public:
engieer(string name1,int age1,string job1,string major1 ):
base(name1,age1)
{
job=job1;
major=major1;;
}
void print()
{
base::print();
cout<<"职称:"<<job<<endl;
cout<<"专业:"<<major<<endl;
}
private:
string job;
string major;
};
class chainman:virtual public base,virtual public leader,virtual public engieer
{
public:
chainman(string name1,int age1,string work1,string dept1,string job1,string major1,int num1):
base(name1,age1),leader(name1,age1,work1,dept1),engieer(name1,age1,job1,major1)
{
num=num1;
}
void print()
{
leader::print();
engieer::print();
cout<<"编号:"<<num<<endl;
}
private:
int num;
};
int main()
{
leader leader1("梁文博",39,"指挥部署","办公室");
cout<<"领导信息:"<<endl;
leader1.print();
engieer engieer1("古何凯",29,"机械师","自动化");
cout<<"********************"<<endl;
cout<<"机械师信息:"<<endl;
engieer1.print();
chainman chainman1("吴桂妹",20,"会计核算","银行","会计师","会计",25);
cout<<"********************"<<endl;
cout<<"工程师信息:" <<endl;
chainman1.print();
return 0;
}