不同人的信息,虚函数

#include<iostream.h>
#include<string.h>
class cpeople
{
protected:
	char name[10];
	char sex[4];
	int age;
public:	
	    char getsex[4];
		char getname[10];
	cpeople(char n[10],char s[4],int ag)
	{
		strcpy(name,n);
		strcpy(sex,s);
		age=ag;
		strcpy(getname,n);
		strcpy(getsex,s);
	}	
	int getage()
	{
		return age;
	}


};
class cstudent:virtual public cpeople
{
	char id[20];
	char date[20];
	float grade;
public:
	char getdate[20];
	char getid[20];
	cstudent(char n[10],char s[4],int ag,char id2[20],char da[20],float gr):cpeople(n,s,ag)
	{
		strcpy(id,id2);
		strcpy(date,da);
		grade=gr;		
		strcpy(getid,id2);
		strcpy(getdate,da);
	}
	float getgrade()
	{
		return grade;
	}
};
class cteacher:virtual public cpeople
{
	char job[20];
	char depart[20];
	char worktime[20];
public:
	char getjob[20];	
	char getdepart[20];
	char getworktime[20];
	cteacher(char n[10],char s[4],int ag,char jo[20],char dep[20],char wo[20]):cpeople(n,s,ag)
	{
        strcpy(job,jo);
		strcpy(depart,dep);
		strcpy(worktime,wo);
		strcpy(getjob,jo);
		strcpy(getdepart,dep);	
		strcpy(getworktime,wo);
	}

};
class cgraduate:public cstudent
{
	char search[20];
	char teachername[10];
public:
		char getsearch[20];	
		char getteachername[10];
		cgraduate(char n[10],char s[4],int ag,char id2[20],char dat[20],float gr,char sea[20],char tea[10]):cstudent(n,s,ag,id2,dat,gr),cpeople(n,s,ag)
		{
		strcpy(search,sea);
		strcpy(teachername,tea);
		strcpy(getsearch,sea);
		strcpy(getteachername,tea);
		}
};
class cgradonwork:public cgraduate,public cteacher
{
public:
	cgradonwork(char n[10],char s[4],int ag,char jo[20],char dep[20],char wo[20],char id2[20],char dat[20],float gr,char sea[20],char tea[10]):cgraduate( n,s,ag,id2,dat,gr,sea,tea),cteacher(n,s,ag,jo,dep,wo),cpeople(n,s,ag)
	{
		cout<<"调用构造函数cgradonwork()"<<endl;
	}

};
void main()
{
	char name1[10],sex1[4],id11[20],date11[20],jo[20],dep[20],wo[20],sea[20],tea[10];
	int age1;
	float grade11;
   	cout<<"***************(1)普通人****************"<<endl;
	cout<<"***************(2)学生***************"<<endl;
	cout<<"***************(3)老师***************"<<endl;
	cout<<"***************(4)研究生**************"<<endl;
	cout<<"***************(5)在职研究生************"<<endl;
	int num;                                                                                                             
	cout<<"请输入你所在职位的序号"<<endl;
	cin>>num;
   if(num==1)
	{
		cout<<"请输入您的姓名,性别,年龄"<<endl;
	         cin>>name1>>sex1>>age1;
        cpeople pe(name1,sex1,age1);
		    cout<<"此人的信息为"<<pe.getname<<'	'<<pe.getsex<<'	'<<pe.getage();
	}
	else if(num==2)
	{
		cout<<"请输入您的姓名,性别,年龄,学号,入学时间,入学成绩"<<endl;
	         cin>>name1>>sex1>>age1>>id11>>date11>>grade11;
		cstudent st(name1,sex1,age1,id11,date11,grade11);
		cout<<"此人的信息为"<<st.getname<<'	'<<st.getsex<<'	'<<st.getage()<<'	'<<st.getid<<'	'<<st.getdate<<'	'<<st.getgrade()<<endl;
	}
    	else if(num==3)
		{
			cout<<"请输入您的姓名,性别,年龄,职务,部门,工作时间"<<endl;
	         cin>>name1>>sex1>>age1>>jo>>dep>>wo;
            cteacher te(name1,sex1,age1,jo,dep,wo);
			cout<<"此人的信息为"<<te.getname<<'	'<<te.getsex<<'	'<<te.getage()<<'	'<<te.getjob<<'	'<<te.getdepart<<'	'<<te.getworktime<<endl;
		}
		     else if(num==4)
			 {
				 cout<<"请输入您的姓名,性别,年龄,学号,入学时间,入学成绩,研究方向,导师"<<endl;
	             cin>>name1>>sex1>>age1>>id11>>date11>>grade11>>sea>>tea;
                 cgraduate gr(name1,sex1,age1,id11,date11,grade11,sea,tea);
			     cout<<"此人的信息为"<<gr.getname<<'	'<<gr.getsex<<'	'<<gr.getage()<<'	'<<gr.getid<<'	'<<gr.getdate<<'	'<<gr.getgrade()<<'	'<<gr.getsearch<<'	'<<gr.getteachername<<endl;
			 }
			     else
				 {
					 cout<<"请输入您的姓名,性别,年龄,职务,部门,工作时间,学号,入学时间,入学成绩,研究方向,导师"<<endl;
	                 cin>>name1>>sex1>>age1>>jo>>dep>>wo>>id11>>date11>>grade11>>sea>>tea;
                     cgradonwork gradon(name1,sex1,age1,jo,dep,wo,id11,date11,grade11,sea,tea);
					 cout<<"此人的信息为"<<gradon.getname<<'	'<<gradon.getsex<<'	'<<gradon.getage()<<'	'<<gradon.getjob<<'	'<<gradon.getdepart<<'	'<<gradon.getworktime<<endl;
			         cout<<gradon.getid<<'	'<<gradon.getdate<<'	'<<gradon.getgrade()<<'	'<<gradon.getsearch<<'	'<<gradon.getteachername<<endl;
			         
				 }

	

}

原文地址:https://www.cnblogs.com/zztong/p/6695326.html