面向对象编程:图形类与书籍类设计
需积分: 20 71 浏览量
更新于2024-09-04
收藏 504KB DOCX 举报
"本资源包含了第五次上机练习的题目及参考代码,主要涉及C++编程,涵盖了面向对象编程的基本概念,如继承、抽象类、纯虚函数以及多态性的实现。练习包括创建一个表示几何图形的类层次结构,一个表示出版物的类层次结构,以及设计与银行存款相关的类,同时还有一个图书类的设计。"
在C++编程中,面向对象编程(OOP)是一种常用的设计方式,它允许我们通过类和对象来组织和管理代码。在这个上机练习中,有以下几个关键知识点:
1. **基类与派生类**:题目要求定义一个公共基类`Shape`,表示封闭的平面几何图形。这是类继承的基础,`Shape`将作为其他具体图形类(如`Triangle`、`Rectangle`和`Circle`)的基类。基类中定义了纯虚函数`show()`和`area()`,它们在派生类中会被重写,实现具体的图形信息显示和面积计算,以体现多态性。
2. **多态性**:多态性是面向对象的一个重要特性,它允许不同类型的对象对同一消息做出不同的响应。在这里,`Shape`类的`show()`和`area()`函数在派生类中被具体实现,使得不同的图形类能根据自身特性执行不同的操作,这就是运行时的多态性。
3. **抽象类与纯虚函数**:`Shape`和`Base`类都是抽象类,因为它们含有纯虚函数。在C++中,纯虚函数没有实现,仅声明,它的目的是为了使基类不能被实例化,只能作为其他类的基底。`IsGood`函数在`Base`类中被声明为纯虚函数,而在`Book`和`Journal`类中被具体实现,符合各自的逻辑。
4. **继承与覆盖**:`Book`类和`Journal`类从`Base`类派生,它们覆盖了`IsGood`这个纯虚函数,提供了自己的实现,根据不同的条件判断是否为"好"。这展示了如何利用继承来扩展基类的功能。
5. **友元函数**:在银行类(`CBank`、`BBank`、`GBank`)的设计中,`Total`函数被声明为友元,可以访问类的私有数据成员`balance`,用来计算在多个银行的总存款。友元函数不遵循封装原则,但可以方便地处理需要跨类访问数据的情况。
6. **图书类`Book`设计**:`Book`类需要保存图书的基本信息,如名称、定价,以及所有图书的总册数和总价。这涉及到类的数据成员和成员函数的定义,以及可能的计算逻辑。
虽然没有给出完整的代码,但是这些题目提供了一个良好的框架,让学生实践面向对象编程的基本概念。通过完成这些题目,学生可以加深对C++中继承、多态、抽象类和友元函数等概念的理解。
2020-12-14 上传
2019-10-04 上传
2020-12-14 上传
2021-11-06 上传
2019-06-03 上传
2024-04-26 上传
2022-01-13 上传
2022-07-12 上传
2019-10-12 上传
白马长枪飘入诗
- 粉丝: 1
- 资源: 15
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用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制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析