0
样编辑:高老师ZR
QQ:1234090
电话:0411-84706671(编辑电话)0411-84706041(购书电话)
邮箱:
面向对象程序设计(C++)(第三版)
荐
作者:王明福
出版时间:2019-01-01
定价:52.80元
面向对象程序设计(C++)(第四版)
荐
作者:王明福
出版时间:2026-08-01
定价:62.80元
荐
本教材围绕面向对象的核心思想与开发方法展开,以微软Visual Studio 2022作为开发平台,兼顾面向过程与面向对象程序设计,做到适度区分、有机融合。全书共设置10个项目、23个具体任务,涵盖C++数据类型、运算符与表达式、程序控制结构、复合数据类型、函数、类与对象、派生与继承、多态和虚函数、模板与异常处理、C++I/O流类库等内容。前5个项目讲解面向过程的C++基础语法知识;项目6~项目10聚焦面向对象的核心特征与开发技术,重点讲解C++抽象、封装、继承、多态、动态联编五大核心特性。
《面向对象程序设计(C++)》(第四版)是“十四五”职业教育国家规划教材、“十三五”职业教育国家规划教材、“十二五”职业教育国家规划教材、高职高专计算机教指委优秀教材,也是高等职业教育软件技术专业系列规划教材之一。
党的二十大报告指出:我们要坚持教育优先发展、科技自立自强、人才引领驱动,加快建设教育强国、科技强国、人才强国,坚持为党育人、为国育才,全面提高人才自主培养质量,着力造就拔尖创新人才,聚天下英才而用之。培养软件开发技术技能型人才,是新时代赋予高职院校的重要使命。本教材将社会主义核心价值观、职业道德、工匠精神、团队协作等内容作为课程思政元素融入教学全过程,做到因势利导、润物无声,引导学生把个人成才理想融入中华民族伟大复兴的中国梦。
面向对象设计技术是当前主流的软件设计技术。C++伴随面向对象技术发展应运而生,其广泛应用又进一步推动了面向对象技术的进步。
本教材围绕面向对象的核心思想与开发方法展开,以微软Visual Studio 2022作为开发平台,兼顾面向过程与面向对象程序设计,做到适度区分、有机融合。全书共设置10个项目、23个具体任务,涵盖C++数据类型、运算符与表达式、程序控制结构、复合数据类型、函数、类与对象、派生与继承、多态和虚函数、模板与异常处理、C++I/O流类库等内容。前5个项目讲解面向过程的C++基础语法知识;项目6~项目10聚焦面向对象的核心特征与开发技术,重点讲解C++抽象、封装、继承、多态、动态联编五大核心特性。
本版教材在上一版基础上,结合一线教学反馈与职业教育改革发展需求,吸纳行业新技术、新知识、新方法,贴合技能型人才培养要求完成修订,以项目-任务式体例组织内容,调整、充实教学案例,修订工作主要体现在以下三方面。
1.优化教材编写理念与内容组织形式
本教材坚持以就业为导向、以学生为主体,关注学生职业成长,重视职业素养培育。采用“项目驱动+知识学习+项目实施+自我测试练习”四位一体的内容组织模式。前5个项目在知识准备、任务实施环节分别设置“模仿练习”与“拓展训练”两级实训任务,用于验证、巩固语法概念,适配自主学习、合作学习与分层教学的需要。项目6~项目10以综合案例图书借阅管理系统为载体,拆解系统功能模块与程序代码,按照C++面向对象知识体系分配至各个子任务。跟随系统从设计、编码开发、迭代优化到功能完善的完整过程,帮助学生在项目实践中掌握面向对象开发技术,完成知识内化与构建。
2.教材内容的删减与新增
新版删除“Visual C++编程基础”“MFC应用程序实例”两部分内容,进一步凸显面向对象五大核心特征,使教材内容与面向对象程序设计的知识体系更加匹配。新增名称空间、头文件演变等内容,适配新版开发环境,满足实际项目开发需求。书中增设“素养小贴士”栏目,融入党的二十大报告中“推进文化自信自强,铸就社会主义文化新辉煌”的精神内涵。
3.更新、增补案例与项目
案例与项目遵循实用、趣味、创新的原则,部分取材于企业真实项目与全国“蓝桥杯”软件大赛改编试题,贴合产业升级、技术迭代与岗位能力变化,充分体现行业新知识、新技术、新方法。
在编写本教材的过程中,编者参考、引用和改编了国内外出版物中的相关资料以及网络资源,在此向相关作者表示感谢。相关著作权人看到本教材后,请与出版社联系,出版社将按照相关法律的规定支付稿酬。
本教材可以作为高职高专院校计算机应用技术、软件技术等相关专业面向对象程序设计课程的教材,也可以作为应用型本科相关专业学习面向对象程序设计的教材,还可以作为全国“蓝桥杯”软件大赛的参考用书。
尽管编者已尽力完善书稿,但受限于编者水平,书中难免存在疏漏与不足之处,恳请广大读者批评指正,并欢迎反馈意见,以便后续版本修订完善。
编 者
2026年8月于深圳职业技术大学
项目1 走进C++编程世界 / 1
项目导入 / 1
1.1 程序设计语言简介 / 1
1.1.1 计算机语言与程序 / 2
1.1.2 从C到C++ / 3
1.2 程序设计方法 / 4
1.2.1 结构化程序设计方法 / 4
1.2.2 面向对象的程序设计方法 / 4
1.2.3 面向对象的特性 / 5
1.3 认识C++程序 / 6
1.3.1 预编译指令 / 7
1.3.2 名称空间 / 7
1.3.3 主函数 / 8
1.3.4 自定义函数 / 8
1.3.5 C++程序中的注释 / 9
1.4 C++的输入/输出 / 9
1.5 头文件的引用形式 / 13
1.5.1 头文件的演变 / 13
1.5.2 头文件的引用形式 / 14
任务1-1 安装集成开发环境 / 15
任务1-2 开发环境的使用 / 19
自我测试练习 / 21
项目2 认识C++数据类型、运算符和表达式 / 23
2.1 关键字和标识符 / 23
2.1.1 关键字 / 23
2.1.2 标识符 / 24
2.2 基本数据类型 / 24
2.2.1 整型数据 / 24
2.2.2 实型数据 / 26
2.2.3 字符型数据 / 26
2.3 常量与变量 / 27
2.3.1 常 量 / 27
2.3.2 变 量 / 31
2.4 运算符与表达式 / 32
2.4.1 算术运算符和算术表达式 / 32
2.4.2 关系运算符与关系表达式 / 35
2.4.3 逻辑运算符与逻辑表达式 / 36
2.4.4 条件运算符 / 38
2.4.5 赋值运算符和赋值表达式 / 39
2.4.6 逗号运算符和逗号表达式 / 40
2.4.7 运算符的优先级与结合顺序 / 41
2.5 类型转换 / 42
任务2-1 求解方程ax2+bx+c=0(a≠0) / 44
任务2-2 逻辑推理与判断 / 45
自我测试练习 / 47
项目3 C++的控制结构 / 49
3.1 选择结构 / 49
3.1.1 if语句 / 49
3.1.2 if语句的嵌套 / 52
3.1.3 switch语句 / 53
3.2 循环语句 / 55
3.2.1 while语句 / 55
3.2.2 do-while语句 / 56
3.2.3 for语句 / 57
3.2.4 循环的嵌套 / 59
3.3 循环控制 / 61
3.3.1 break与continue语句 / 61
3.3.2 goto语句和标号语句 / 64
任务3-1 趣味古典数学问题 / 64
任务3-2 文字游戏 / 66
任务3-3 逻辑推理* / 67
自我测试练习 / 69
项目4 复合数据类型 / 72
4.1 一维数组 / 72
4.1.1 一维数组的定义 / 72
4.1.2 一维数组的引用 / 73
4.1.3 一维数组的初始化 / 74
4.2 二维数组 / 75
4.2.1 二维数组的定义 / 75
4.2.2 二维数组的引用 / 76
4.2.3 二维数组的初始化 / 76
4.3 字符数组与字符串 / 78
4.3.1 字符数组 / 78
4.3.2 字符串 / 80
4.3.3 字符串处理函数 / 82
4.4 结构体类型 / 85
4.4.1 结构体类型的定义 / 85
4.4.2 结构体变量的定义 / 85
4.4.3 结构体变量的引用 / 87
4.4.4 结构体变量的初始化 / 89
4.5 结构体数组 / 90
4.5.1 结构体数组的定义 / 90
4.5.2 结构体数组的引用 / 91
4.5.3 结构体数组的初始化 / 92
4.6 指 针 / 93
4.6.1 指针的概念 / 93
4.6.2 指针变量的定义和初始化 / 95
4.6.3 指针变量的使用 / 96
4.6.4 指针变量的自加、自减运算 / 97
4.6.5 指针与数组 / 99
4.6.6 指针与结构体 / 101
4.6.7 const指针 / 103
任务4-1 不同进制数的转换 / 104
任务4-2 候选人选票程序 / 105
自我测试练习 / 107
项目5 函 数 / 109
5.1 函数的定义与调用 / 109
5.1.1 函数的定义 / 109
5.1.2 函数的调用 / 111
5.1.3 函数的声明 / 115
5.2 函数参数的传递 / 117
5.2.1 按值传递 / 117
5.2.2 地址传递 / 118
5.2.3 引用传递 / 120
5.3 内联函数 / 121
5.4 函数的重载 / 122
5.4.1 参数类型重载的函数 / 122
5.4.2 参数个数重载的函数 / 123
5.5 函数的默认参数 / 124
5.5.1 默认参数函数的使用 / 124
5.5.2 使用时的注意问题 / 125
5.6 函数的可变参数* / 125
5.7 系统函数的调用 / 127
5.8 全局变量和局部变量 / 128
5.8.1 局部变量 / 128
5.8.2 全局变量 / 128
5.9 内部函数和外部函数 / 130
5.10 编译预处理 / 131
5.10.1 宏定义命令 / 131
5.10.2 条件编译命令 / 133
5.10.3 文件包含命令 / 135
任务5-1 求数组中的最小值 / 136
任务5-2 猴子吃桃子 / 137
自我测试练习 / 138
项目6 图书借阅管理系统第一版 / 141
6.1 从结构到类的演变 / 141
6.2 认识类 / 144
6.2.1 类的定义 / 144
6.2.2 类的访问控制 / 146
6.2.3 类的数据成员 / 147
6.2.4 类的成员函数 / 148
6.2.5 成员函数的存取权限 / 150
6.2.6 成员函数重载 / 151
6.2.7 成员函数缺省参数 / 151
6.3 认识对象 / 153
6.3.1 对象的定义 / 153
6.3.2 对象成员的使用 / 154
6.3.3 定义类和对象的有关说明 / 156
6.4 对象的初始化和撤销 / 157
6.4.1 构造函数 / 157
6.4.2 析构函数 / 160
6.4.3 拷贝构造函数 / 162
6.5 静态成员 / 164
6.5.1 静态数据成员 / 164
6.5.2 静态成员函数 / 165
6.6 友 元 / 168
6.6.1 普通函数作为友元函数 / 168
6.6.2 成员函数作为友元函数 / 171
6.6.3 友元类 / 172
6.7 类与指针 / 174
6.7.1 指向类对象的指针 / 174
6.7.2 new和delete函数 / 175
6.7.3 this指针 / 178
任务6-1 图书借阅管理系统主要类的设计 / 180
任务6-2 图书借阅管理系统第一版 / 186
自我测试练习 / 187
项目7 图书借阅管理系统第二版 / 190
7.1 继承与派生 / 190
7.1.1 继承与派生概述 / 190
7.1.2 单一继承 / 191
7.2 三种继承方式 / 193
7.2.1 公有继承(派生) / 193
7.2.2 私有继承(派生) / 195
7.2.3 保护继承(派生) / 196
7.3 派生类的构造函数和析构函数 / 198
7.3.1 构造函数 / 198
7.3.2 析构函数 / 200
7.4 多继承 / 201
7.4.1 多继承的定义 / 201
7.4.2 多继承的构造函数 / 202
7.5 多继承中的二义性 / 204
7.5.1 作用域分辨符 / 204
7.5.2 虚基类 / 207
7.5.3 虚基类的构造函数 / 208
7.5.4 虚基类的应用实例 / 210
任务7-1 管理系统类层次结构设计 / 212
任务7-2 修改读者类和操作类 / 214
任务7-3 类成员函数的实现 / 215
任务7-4 图书借阅管理系统第二版 / 223
自我测试练习 / 224
项目8 多态性和虚函数应用 / 227
8.1 联编的概念 / 227
8.2 动态联编和虚函数 / 229
8.2.1 虚函数的定义 / 229
8.2.2 虚函数的调用 / 231
8.3 纯虚函数和抽象类 / 234
8.3.1 纯虚函数 / 234
8.3.2 抽象类 / 236
8.4 静态多态性与动态多态性的比较 / 237
8.5 运算符重载 / 240
8.5.1 运算符重载的一般规则 / 240
8.5.2 运算符重载为成员函数 / 241
8.5.3 运算符重载为友元函数 / 244
任务8-1 抽象类的应用实例 / 247
任务8-2 计算函数的定积分 / 250
任务8-3 运算符重载的综合应用 / 253
自我测试练习 / 255
项目9 模板和异常处理 / 258
9.1 模板概述 / 258
9.2 函数模板 / 260
9.2.1 函数模板的定义 / 260
9.2.2 函数模板的实例化 / 261
9.2.3 函数模板的重载 / 264
9.3 类模板 / 266
9.3.1 类模板的定义 / 266
9.3.2 类模板的实例化 / 267
9.4 异常处理 / 269
9.4.1 异常的概念 / 269
9.4.2 异常处理的实现 / 270
9.4.3 异常处理的执行过程 / 271
任务9-1 冒泡排序函数模板 / 273
任务9-2 最大值类模板 / 275
自我测试练习 / 276
项目10 图书借阅管理系统第三版 / 279
10.1 文件和流 / 279
10.1.1 文件概述 / 279
10.1.2 文件流类 / 280
10.2 文件的打开和关闭 / 281
10.2.1 文件的打开 / 281
10.2.2 文件的关闭 / 282
10.3 文件的顺序读写 / 283
10.3.1 使用流运算符读写文本文件 / 283
10.3.2 使用流的成员函数读写文本文件 / 285
10.3.3 二进制文件的读写 / 287
10.4 文件的随机读写 / 290
任务10 图书借阅管理系统第三版 / 293
自我测试练习 / 295
参考文献 / 298
扫码关注
返回顶部