#include<iostream>
#include<cstring>
using namespace std;
class Faculty
{
protected:
char Name[20];
int EID;
int Glade;
int Salary;
public:
virtual void ShowFacultyDetail(){}
virtual void Position_Change(){}
virtual int IncreaseSalary(int Salary_Up){}
int IncreaseGlade(int Glade_Up)
{
Glade +=Glade_Up;
}
};
class Teacher : virtual public Faculty
{
protected:
char School[20];
char Discipline[20];
public:
Teacher(char TName[],int TEID,int TGlade,int TSalary,char TSchool[],char TDiscipline[])
{
strcpy(Name,TName);
Glade = TGlade;
Salary = TSalary;
strcpy(School,TSchool);
strcpy(Discipline,TDiscipline);
}
virtual void ShowFacultyDetail()
{
cout<<"Name "<<Name<<"EID "<<EID<<"Salary "<<Salary<<endl;
cout<<"Glade";
cout<<School<<" "<<Discipline<<endl;
}
virtual int IncreaseSalary(int Salary_Up)
{
Salary+=300*Salary_Up;
}
};
class Official : virtual public Faculty
{
protected:
char Department[20];
char Position[20];
int Official_Glade;
public:
Official(char OName[],int OEID,int OGlade,int OSalary,char ODepartment[],char OPosition[])
{
strcpy(Name,OName);
EID = OEID;
Glade= OGlade;
Salary = OSalary;
strcpy(Department,ODepartment);
strcpy(Position,OPosition);
ShowFacultyDetail();
}
virtual void ShowFacultyDetail()
{
cout<<"Name "<<Name<<"EID "<<EID<<"Salary "<<Salary<<endl;
cout<<"Glade";
cout<<Department<<" "<<Position<<endl;
}
};
class Giant : public Teacher,public Official
{
public:
Giant(char GName[],int GEID,int Glade1,int Glade2,int GSalary,char GSchool[],char GDiscipline[],char GDepartment[],char GPosition[])
{
strcpy(Name,GName);
EID = GEID;
Teacher_Glade = Glade1;
Official_Glade = Glade2;
Salary = GSalary;
strcpy(School,GSchool);
strcpy(Discipline,GDiscipline);
strcpy(Department,GDepartment);
strcpy(Position,GPosition);
Glade = Teacher_Glade+Official_Glade;
Salary += Teacher_Glade*300+ Official_Glade*3000;
}
void ShowFacultyDetail()
{
cout<<"Name "<<Name<<"EID "<<EID<<"Salary "<<Salary<<endl;
cout<<"teacher's Glade"<<Teacher_Glade<<" "<<"offcier's Glade"<<Official_Glade<<endl;
}
private:
int Teacher_Glade;
int Official_Glade;
};
void fn(Faculty &A,int Salary_Up)
{
A.IncreaseGlade(Salary_Up);
A.ShowFacultyDetail();
}
int main(void)
{
Teacher A("ZhaoHong",001,1,3000,"北京交通大學","通信");
A.ShowFacultyDetail();
Official B("HuangTaiyan",002,1,4000,"處室一級","教導主任");
B.ShowFacultyDetail();
Giant C("WangJiaQiong",003,1,1,6000,"北京交通大學","電子","處室二級","副校長");
fn(A,1);
return 0;
}
uj5u.com熱心網友回復:
Techer 沒有默認建構式uj5u.com熱心網友回復:
建構式在創建物件的時候呼叫,先呼叫父類,再子類,然后你這個父類teacher又沒有默認的建構式轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44278.html
標籤:新手樂園
上一篇:學生成績管理系統
