/*在学生类student和教师类teacher基础上
再派生出一个助教类TeachAssistant,一个助教既具有教师的特征,
又具有学生的特征,还有自己的新特征:工资(wage)。
要求将助教类的间接共同基类声明为虚基类。*/
#include<iostream>
#include<string>
using namespace std;
class Person{
public:
void input(){cin>>no>>name;}
void display(){cout<<"no"<<no<<endl;
cout<<"name"<<name<<endl;}
private:
int no;
string name;
};
class Teacher:viryual public Person{
public:
void input()
{
Person::input();
cin>>zhicheng>>bumen;
}
void display()
{
Person::display();
cout<<zhicheng<<bumen<<endl;
}
private:
string zhicheng;
string bumen;
};
class Student:viryual public Person{
public:
void input()
{
Person::input();
cin>>num>>score;
}
void display()
{
Person::display();
cout<<num<<endl;
cout<<score<<endl;
}
private:
int num;
float score;
};
class TeacherAssistant:public teacher,public student{
public:
void input(){
Person::input();
Teacher::input();
Student::input();
cin>>wage;
}
void display(){
Person::display();
Teacher::display();
Student::display();
cout<<wage<<endl;
}
private:{
float wage;
};
int main()
{
Teacher teacher;
Student student;
TeacherAssistant teacherassistant;
cout<<"请输入教师的编号、姓名、职称和部门"<<endl;
teacher.Person::input();
teacher.input();
cout<<"显示教师的编号、姓名、职称和部门"<<endl;
teacher.Person::display();
teacher.display();
cout<<"请输入学生的编号、姓名、班号和分数"<<endl;
student.Person::input();
student.input();
cout<<"显示教师的编号、姓名、班号和分数"<<endl
student.Person::display();
student.display();
cout<<"请输入助教的编号、姓名、职称、部门、班号、分数和工资"<<endl;
teacherassistant.input();
cout<<"显示助教的编号、姓名、职称、部门、班号、分数和工资"<<endl;
teacherassistant.display();
return 0;
}
再派生出一个助教类TeachAssistant,一个助教既具有教师的特征,
又具有学生的特征,还有自己的新特征:工资(wage)。
要求将助教类的间接共同基类声明为虚基类。*/
#include<iostream>
#include<string>
using namespace std;
class Person{
public:
void input(){cin>>no>>name;}
void display(){cout<<"no"<<no<<endl;
cout<<"name"<<name<<endl;}
private:
int no;
string name;
};
class Teacher:viryual public Person{
public:
void input()
{
Person::input();
cin>>zhicheng>>bumen;
}
void display()
{
Person::display();
cout<<zhicheng<<bumen<<endl;
}
private:
string zhicheng;
string bumen;
};
class Student:viryual public Person{
public:
void input()
{
Person::input();
cin>>num>>score;
}
void display()
{
Person::display();
cout<<num<<endl;
cout<<score<<endl;
}
private:
int num;
float score;
};
class TeacherAssistant:public teacher,public student{
public:
void input(){
Person::input();
Teacher::input();
Student::input();
cin>>wage;
}
void display(){
Person::display();
Teacher::display();
Student::display();
cout<<wage<<endl;
}
private:{
float wage;
};
int main()
{
Teacher teacher;
Student student;
TeacherAssistant teacherassistant;
cout<<"请输入教师的编号、姓名、职称和部门"<<endl;
teacher.Person::input();
teacher.input();
cout<<"显示教师的编号、姓名、职称和部门"<<endl;
teacher.Person::display();
teacher.display();
cout<<"请输入学生的编号、姓名、班号和分数"<<endl;
student.Person::input();
student.input();
cout<<"显示教师的编号、姓名、班号和分数"<<endl
student.Person::display();
student.display();
cout<<"请输入助教的编号、姓名、职称、部门、班号、分数和工资"<<endl;
teacherassistant.input();
cout<<"显示助教的编号、姓名、职称、部门、班号、分数和工资"<<endl;
teacherassistant.display();
return 0;
}