西安交大C++继承与类设计实验报告:教师类实现
版权申诉
5星 · 超过95%的资源 53 浏览量
更新于2024-06-29
1
收藏 521KB PDF 举报
本资源是一份西安交通大学计算机程序设计课程的第九章实验报告,专注于继承的概念和应用。实验的主要目标是让学生熟练掌握C++中继承的使用方法,通过实际编程训练类的设计和不同继承方式对基类成员访问控制的理解。具体内容分为两个部分:
**一、实验目的**
1. 熟练掌握类的继承技术,包括如何创建和使用派生类。
2. 深入理解基类和派生类之间的关系,特别是对基类成员的访问控制,包括公有(public)、保护(protected)和私有(private)属性和方法的使用。
3. 实践中增加新的类特性,如在题目中提到的教师类(Teacher),它继承自Person类,并添加了专业(zhuanye)、职称(zhicheng)和主讲课程(course)这三个新属性,以及与之相关的注册(Register)和打印(print)方法。
**二、实验内容**
1. **第一题:继承与属性和方法的定义**
- 创建一个名为Teacher的派生类,它从Person类继承而来。在Teacher类中,新增的属性包括专业名、职称和主讲课程的指针变量。
- 实现`Teacher()`构造函数,用于初始化基类属性并可能设置新的派生类属性。
- 定义`Register()`方法,用于设置新的教师属性值,包括名字、性别、年龄、专业、职称和课程。
- 实现`~Teacher()`析构函数,确保动态分配的内存被正确释放。
- `print()`方法则用于展示教师的所有信息,包括基类和派生类属性。
例如,Teacher类的部分代码如下:
```cpp
Teacher::Teacher()
{
Person::Register(name, sex, age); // 调用基类的构造函数
zhuanye = new char[strlen(name) + 1]; // 动态分配存储专业名的空间
strcpy(zhuanye, name); // 复制名字到新分配的内存
// 同理处理职称和课程
}
void Teacher::Register(char* name, char sex, int age, char* zhuanye, char* zhicheng, char* course)
{
Person::Register(name, sex, age); // 继承基类的注册方法
// 更新派生类属性
}
void Teacher::print()
{
Person::print(); // 先打印基类信息
cout << "\t专业:" << zhuanye << "\t职称:" << zhicheng << "\t主讲课程:" << course << endl;
}
```
总结来说,这份作业要求学生在C++环境中运用继承机制来扩展一个基本的Person类,以创建更具体的Teacher类,并在实践中掌握如何访问和管理基类和派生类的属性及方法。通过完成此类任务,学生不仅能提升编程技能,还能加深对面向对象编程中继承概念的理解。
2022-06-18 上传
2022-11-16 上传
2021-10-12 上传
2022-06-17 上传
G11176593
- 粉丝: 6870
- 资源: 3万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜