当前位置:   article > 正文

C++第5次实验项目二-教师干部类_[1]定义teacher类和其派生类teacher_cadre,要求如下: (1)在两个基类中都包含

[1]定义teacher类和其派生类teacher_cadre,要求如下: (1)在两个基类中都包含姓名

一、问题及代码

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

  1. /*
  2. * 文件名称:多继承类问题
  3. * 作 者: 吴磊
  4. * 完成日期: 2016年5月6日
  5. * 版 本 号:v1.0
  6. * 对任务及求解方法的描述部分: 多继承构造派生类
  7. * 输入描述:先执行基类的构造函数,然后再定义派生类构造函数体
  8. * 问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。要求:
  9. (1)在两个基类中都包含姓名、年龄、性别等数据成员。
  10. (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。
  11. (3)对两个基类中的姓名、年龄、性别等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
  12. (4)在类体中声明成员函数,在类外定义成员函数。
  13. (5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称,然后再用cout语句输出职务与工资。
  14. * 程序输出:姓名:
  15. 年龄:
  16. 性别:
  17. 职称:
  18. 职务:
  19. 工资:
  20. * 问题分析: 略
  21. * 算法设计: 多继承下派生类构造函数
  22. */
  23. #include<iostream>
  24. #include<string>
  25. using namespace std;
  26. class Teacher
  27. {
  28. public:
  29. Teacher(string n,int a,string s,string ti);
  30. void display();
  31. protected:
  32. string name;
  33. int age;
  34. string sex;
  35. string title;
  36. };
  37. class Cadre
  38. {
  39. public:
  40. Cadre(string n,int a,string s,string p);
  41. void display();
  42. protected:
  43. string name;
  44. int age;
  45. string sex;
  46. string post;
  47. };
  48. class Teacher_Cadre:public Teacher,public Cadre
  49. {
  50. public:
  51. Teacher_Cadre(string n,int a,string s,string ti,string p,double w);
  52. void show();
  53. protected:
  54. double wages;
  55. };
  56. void Teacher::display()
  57. {
  58. cout<<"姓名:"<<name<<endl;
  59. cout<<"年龄:"<<age<<endl;
  60. cout<<"性别:"<<sex<<endl;
  61. cout<<"职称: "<<title<<endl;
  62. }
  63. void Cadre::display()
  64. {
  65. cout<<"姓名:"<<name<<endl;
  66. cout<<"年龄:"<<age<<endl;
  67. cout<<"性别:"<<sex<<endl;
  68. cout<<"职务:"<<post<<endl;
  69. }
  70. void Teacher_Cadre::show()
  71. {
  72. Teacher::display();
  73. cout<<"职务:"<<Cadre::post<<endl;
  74. cout<<"工资:"<<wages<<endl;
  75. }
  76. Teacher_Cadre::Teacher_Cadre(string n,int a,string s,string ti,string p,double w):Teacher(n,a,s,ti),Cadre(n,a,s,p)
  77. {
  78. wages=w;
  79. }
  80. int main()
  81. {
  82. Teacher_Cadre people("曾辉",42,"男","副教授","主任",1534.5);
  83. people.show();
  84. cout<<endl;
  85. return 0;
  86. }


二、运行结果


三、心得体会

检查的时候没有发现错误,但是输出的时候就有错误,纠正不出来。

四、知识总结

多继承下派生函数的构造,并且构造出另一个派生函数继承两个类中的成员,再自己定义本身的数据成员。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/106097
推荐阅读
相关标签
  

闽ICP备14008679号