[5.18]
#include<iostream>
#include<string>
using namespace std;
class Person{
public:
Person(int num1,string name1)
{num=num1;
name=name1;
}
void print()
{cout<<"学号:"<<num<<endl;
cout<<"姓名:"<<name<<endl;
}
protected:
intnum;
string name;
intclassroom;
float grade;
};
class Student:virtual public Person{
public:
Student(int num1,string name1,string classroom1,float grade1):
Person(num1,name1)
{classroom=classroom1;
grade=grade1;}
void print()
{Person::print();
cout<<"班级:"<<classroom<<endl;
cout<<"成绩:"<<grade<<endl;
}
protected:
string classroom;
float grade;
};
class Teacher:virtual public Person{
public:
Teacher(int num1,string name1,string title1,string dept1):
Person(num1,name1)
{title=title1;
dept=dept1;}
void print()
{Person::print();
cout<<"职称:"<<title<<endl;
cout<<"部门:"<<dept<<endl;
}
protected:
string title;
string dept;
};
int main()
{Student my_Student(29,"伍颖妍","信管一班",98);
cout<<"大学生:"<<endl;
my_Student.print();
Teacher my_Teacher(114,"黄福良","教授","科研处");
cout<<"教师:"<<endl;
my_Teacher.print();
return 0;
}
【5.19】
#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;
intage;
};
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:
stringpost;
stringdept;
};
classEngineer:virtual public Person{
public:
Engineer(stringname1,int age1,string title1,string major1):
Person(name1,age1)
{title=title1;
dept=dept1;}
void print()
{Person::print()
cout<<"职称"<<title<<endl;
cout<<"专业:"<<major<<endl;
}
protected:
stringtitle;
stringmajor;
};
class Chairman:public Leader,publicEngineer
{
public:
Chairman(string name1,int age1,string post1,string dept1,stringtitle1,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:
intid;
};
int main()
{Leader my_Leader("李想",35,"秘书","人事部");
cout<<"领导:"<<endl;
my_Leader.print();
Engineer my_Engineer("黄玲",36,"首席建筑师","室内设计");
cout<<"建筑师:"<<endl;
my_Engineer.print();
Chairman my_Chairman("王源",23,"经理","资源部","王总"," 环境设计"'113);
cout<<"主任工程师;"<<endl;
my_Chairman.print();
return 0;
}