5.19

来源:互联网 发布:app用户数据分析维度 编辑:程序博客网 时间:2024/05/16 17:01
设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数;由他派生出领导类leader,包括职务和部门私有数据以及相关的成员函数;再由base派生出工程师类engieer,<span style="font-family: Arial, Helvetica, sans-serif;">包括职务和部门私有数据以及相关的成员函数;然后由leader和engieer,派生出主任工程师类chairman。</span>
#include<iostream>#include<string>using namespace std;class Person{  public: Person(string name1,int age1){  name=name1;  age=age1;}  void print()  {cout<<"姓名:"<<name<<endl;  cout<<"年龄:"<<age<<endl;  }  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<<"职务:"<<post<<endl;   cout<<"部门:"<<dept<<endl;}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<<"职称:"<<title<<endl; cout<<"专业:"<<major<<endl; }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<<"编号:"<<id<<endl; }private:int id;};int main(){Leader my_Leader("张三",11,"经理","财务部");cout<<"领导:"<<endl;my_Leader.print();Engineer my_Engineer("李四",05,"建筑师","建筑设计");cout<<"建筑师:"<<endl;my_Engineer.print();Chairman my_Chairman("曾国营",13,"总经理","人事部","曾总"," 室内设计"' 123);cout<<"主任工程师;"<<endl;my_Chairman.print();return 0;}

0 0
原创粉丝点击