一、问题及代码、
#include<string>
#include <iostream>
using namespace std;
class Teacher //声明老师类
{
public:
Teacher(string nam,int a,char s,string tit);
void display();
protected:
string name;
int age;
char sex;
string title;
};
//老师类成员函数的定义
Teacher::Teacher(string nam,int a,char s,string tit):
name(nam),age(a),sex(s),title(tit){ }
void Teacher::display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"职称:"<<title<<endl;
}
//声明干部类
class Cadre
{
public:
Cadre(string nam,int a,char s,string p);
void display();
protected:
string name;
int age;
char sex;
string post;
};
//干部类成员函数的定义
Cadre::Cadre(string nam,int a,char s,string p):
name(nam),age(a),sex(s),post(p){}
void Cadre::display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"职务:"<<post<<endl;
}
//声明多重公用派生类-教师兼干部类
class Teacher_Cadre:public Teacher,public Cadre
{
public:
Teacher_Cadre(string nam,int a,char s,string tit,string p,float w);
void show( );
private:
float wage;
};
Teacher_Cadre::Teacher_Cadre(string nam,int a,char s,string t,string p,float w):
Teacher(nam,a,s,t),Cadre(nam,a,s,p),wage(w) {}
void Teacher_Cadre::show( )
{
Teacher::display(); //指定域
cout<<"职务:"<<Cadre::post<<endl; //指定域
cout<<"工资:"<<wage<<endl;
}
int main( )
{
Teacher_Cadre te_ca("曾辉",42,'男',"副教授","主任",1534.5);
te_ca.show();
return 0;
}
二、运行结果
三、心得体会
不是太熟练,难度较大。
四、知识点总结
继承函数