设计与实现Person类及其派生类Teacher、Doctor和TeachDoc
需积分: 50 189 浏览量
更新于2024-09-06
1
收藏 1KB TXT 举报
"设计一个基于面向对象编程的人员类person,包括人员编号和姓名,并从该类派生出教师类teacher、医生类doctor以及教师医生类teachdoc。使用虚基类来处理多重继承,同时在主函数中进行实例化和测试。"
在这个程序中,我们首先定义了一个基础类`person`,它包含两个数据成员:`int num`表示人员编号,`string name`表示姓名。类`person`还提供了构造函数来初始化这些数据成员,并有一个`show()`成员函数用于显示人员的基本信息。
接着,我们派生出两个子类`teacher`和`doctor`,它们都使用`virtual`关键字来继承`person`,这是因为我们将要创建一个既是教师又是医生的`teachdoc`类,需要避免继承上的二义性。`teacher`类增加了一个数据成员`int tage`表示教龄,而`doctor`类增加了一个数据成员`string department`表示所在科室。这两个子类也各自提供了构造函数和`show()`函数,以展示它们特有的信息。
为了表示既是教师又是医生的`teachdoc`类,我们从`teacher`和`doctor`两个类进行多重继承。`teachdoc`类还包含了一个新的数据成员`double wage`表示工资。它的构造函数接收所有父类的数据成员以及自身的`wage`,并且调用父类的构造函数进行初始化。同样,`teachdoc`类也重写了`show()`函数,以便显示所有相关的信息。
在`main()`函数中,我们创建了一个`teachdoc`类型的对象,用以测试这个类的功能。这通常会涉及输入适当的参数,比如人员编号、姓名、教龄、科室和工资,然后调用`show()`函数来打印这些信息。这样的设计使得代码具有良好的结构,易于扩展和维护,同时也符合面向对象编程的原则,即封装、继承和多态。通过使用虚基类,我们成功地解决了多继承时可能出现的问题,确保了代码的正确性和效率。
2012-06-18 上传
2012-10-11 上传
2020-04-03 上传
设计一个高校人员管理程序。首先设计一个基类person(10分),包含编号、姓名、性别数据成员以及相关的成员函数,由它派生出教师类(10分)包括编号、姓名、性别、职称和工作学院数据的输入输出;再由pe
2023-06-28 上传
2023-06-01 上传
2023-06-12 上传
2023-05-11 上传
2023-05-19 上传
2023-05-31 上传
2023-06-07 上传
weixin_44066353
- 粉丝: 0
- 资源: 1
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析