[5.19]设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,

#include
#include
using namespace std;
class Person{
  public:
 Person(string name1,int age1){
  name=name1;
  age=age1;}
  void print()
  {cout<<"姓名"<   cout<<"年龄"<   }
  protected:
  string name;
  int age;
  };
class Leader:virtual public Person{
  public:
   Leader(string name1,int age1,string post1,string dept1)
   Person(name1,age1)
   {post=post1;
   dept=dept1;}
   void print()
   {Person::print();
   cout<<"职务:"<    cout<<"部门:"< }
protected:
string post;
string dept;
};
class Engineer:virtual public Person{
public:        
Engineer(string name1,int age1,string title1,string major1):
 Person(name1,age1)
 {title=title1;
 dept=dept1;}
 void print()
 {Person::print() 
 cout<<"职称"< cout<<"专业:"< }
protected:
string title;
string major;
};
class Chairman:public Leader,public Engineer
{
public:
  Chairman(string name1,int age1,string post1,string dept1,string title1,string major1,int id1):
 Person(name1,age1),Leader(name1,age1,post1,dept1),Engineer(name1,age1,title1,major1)
 {id=id1;}
 void print()
 {Leader::print();
 Engineer::print();
 cout<<"编号:"< }
private:
int id;
};
int main()
{Leader my_Leader("姚璐",11,"经理","财务部");
cout<<"领导:"< my_Leader.print();
Engineer my_Engineer("陈鹏",05,"建筑师","建筑设计");
cout<<"建筑师:"< my_Engineer.print();
Chairman my_Chairman("梁铭",13,"总经理","人事部","梁总"," 室内设计"' 123);
cout<<"主任工程师;"< my_Chairman.print();
return 0;
}

你可能感兴趣的:([5.19]设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,)