设计与实现Person类及其派生类Teacher、Doctor和TeachDoc
需积分: 50 135 浏览量
更新于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-05-11 上传
2023-05-28 上传
2023-06-13 上传
2023-06-07 上传
2023-05-30 上传
weixin_44066353
- 粉丝: 0
- 资源: 1
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析