C++第五次实验——项目二

来源:互联网 发布:战舰世界mac版国服 编辑:程序博客网 时间:2024/06/11 11:33

一、问题及代码

项目2:  教师干部类
分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求: 
(1)在两个基类中都包含姓名、年龄、性别等数据成员。 
(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。 
(3)对两个基类中的姓名、年龄、性别等数据成员用相同的名字,在引用这些数据成员时,指定作用域。 
(4)在类体中声明成员函数,在类外定义成员函数。 
(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称,然后再用cout语句输出职务与工资。

#include<string>  #include <iostream>  using namespace std;  class Teacher  {  public:      Teacher(string nam,int a,string s,string tit);      void display();  protected:      string name;      int age;      string sex;      string title;    };    Teacher::Teacher(string nam,int a,string 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,string s,string p);      void display();  protected:      string name;      int age;      string sex;      string post;  };    Cadre::Cadre(string nam,int a,string 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,string s,string tit,string p,float w);      void show( );  private:      float wage;  };    Teacher_Cadre::Teacher_Cadre(string nam,int a,string 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;  }  

二、运行结果


三、心得体会

继承和派生还不是很熟练,格式记忆不清楚,编的比较困难。

四、知识点总结

公有继承,派生类构造函数。

0 0
原创粉丝点击