多重继承实例:研究生承担教学任务
#include<iostream>
using namespace std;
class Teacher
{
public:
Teacher(string nam,int a, string t);
void display_t( );
protected:
string name;
int age;
string title;
};
class Student
{
public:
Student(string nam,char s,float sco);
void display_s( );
protected:
string name1;
char sex;
float score;
};
class Graduate:public Teacher,public Student
{
public:
Graduate(string nam,int a,char s, string t,float sco,float w);
void display_g( ) ;
private:
float wage;
};
Teacher::Teacher(string nam,int a, string t)
{
name=nam;
age=a;
title=t;
}
void Teacher::display_t( )
{
cout<<"name:"<<name<<endl;
cout<<"age"<<age<<endl;
cout<<"title:"<<title<<endl;
}
Student::Student(string nam,char s,float sco)
{
name1=nam;
sex=s;
score=sco;
}
void Student::display_s( )
{
cout<<"name:"<<name1<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"score:"<<score<<endl;
}
Graduate::Graduate(string nam,int a,char s, string t,float sco,float w):Teacher(nam,a,t),Student(nam,s,sco),wage(w) { }
void Graduate::display_g( )
{
cout<<"name:"<<name<<endl;
//cout<<"name:"<<Teacher::name<<endl;
//cout<<"name:"<<Student::name1<<endl;
cout<<"age:"<<age<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"score:"<<score<<endl;
cout<<"title:"<<title<<endl;
cout<<"wages:"<<wage<<endl;
//display_t();
//display_s();
}
int main( )
{
Graduate grad1("Wang-li",24,'f',"assistant",89.5,1234.5);
grad1.display_g( );
return 0;
}