C++程序设计 封面

C++程序设计

评分 2.8
字数
12.6万字
章节数
268
ISBN
9787121343063

标签

内容简介

本书主要参考全国计算机等级考试二级C++考试大纲的要求进行编写,并做了一定的提高。本书分11章,第1章主要是对C++语言的概述,让读者对C++有初步的认识;第2章主要介绍了C++的基本数据类型和表达式;第3章主要介绍了C++常用的三种流程控制结构和语句;第4章介绍了C++的函数;第5章介绍了C++的数组;第6章介绍了C++中的指针。前6章主要是介绍面向结构的程序设计知识。第7章介绍用户自定义数据类型,重点介绍了结构体的用法,这一章是过渡性的知识,为第8章介绍面向对象的程序设计做个铺垫;第8章简要介绍了面向对象的程序设计思想和方法;第9章、第10章介绍类和对象、类的继承和派生的方法;第11章介绍了流类库和输入输出。后面3章集中讲述基于对象的程序设计——即C++的类class设施的定义及用法,我们可以用类来定义新的类型,并且操纵这些新的类型可以像内置类型一样容易,通过创建新的类型来描述问题域,C++使程序员能够编写出更易于理解的应用程序。

编辑推荐

《C++程序设计》是何历怀针对C++语言教学与工程实践撰写的一本系统性教材。本书以电子工业出版社的技术出版标准为依托,内容编排上体现了从基础语法到面向对象思想,再到标准库应用的清晰进阶路径。与市面上许多泛泛而谈的入门书不同,何历怀的写作明显侧重于构建扎实的编程思维模型,尤其在指针、内存管理、类与对象、模板等核心难点上,通过由浅入深的案例和详实的注解进行了拆解,这对于克服C++的学习瓶颈至关重要。

从专业角度看,本书的价值在于其平衡性:既可作为高等院校计算机相关专业的标准教材,其严谨的体系适合课堂讲授与课后练习;也适合有一定编程基础、希望深入理解C++核心机制的开发者自学。书中对C++11/14标准的部分新特性(如智能指针、基于范围的for循环等)进行了引入,虽未全面覆盖最新标准,但为读者从经典C++过渡到现代C++打下了坚实基础。其代码示例侧重阐释概念本身,而非炫技,这种克制使得知识点的传递更为高效。

总体而言,这是一本强调理解与实践并重的著作。它可能不会让你迅速成为C++‘高手’,但能帮助你建立对这门复杂语言正确且稳固的认知框架,避免在后续学习中陷入混乱。对于追求代码质量与长期可维护性的学习者而言,这种扎实的奠基意义深远。

适合谁读

适合

  • 计算机科学或软件工程等相关专业的在校学生,尤其适合作为C++课程的首本教材
  • 已有C语言或其他编程语言基础,希望系统学习C++核心概念与面向对象编程的开发者
  • 从事嵌入式系统、游戏开发、高性能计算等领域,需要夯实C++底层理解的技术人员
  • 对编程有浓厚兴趣,具备一定逻辑思维能力和耐心,愿意投入时间攻克一门严肃编程语言的初学者

不适合

  • 追求速成、希望在一两周内掌握C++并立即投入项目开发的急迫型学习者
  • 仅需了解C++语法皮毛,用于应付简单脚本任务或对编程深度无要求的读者

阅读建议

  1. 建议按章节顺序学习,切勿跳过前期的语法和指针章节,这些是理解后续面向对象和模板的基础
  2. 务必动手实践书中的每一个示例代码,并尝试进行修改和调试,理解其运行机制与边界情况
  3. 可配合在线编程练习平台或本地开发环境,在阅读的同时完成每章后的习题,以巩固知识

出版社简介

电子工业出版社 中国 · 成立于 1982 年

电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。

目录

  1. 版权信息
  2. 内容简介
  3. 前言
  4. 第1章 C++语言概述
  5. 1.1 概述
  6. 1.1.1 C++的发展史
  7. 1.1.2 C++的优势
  8. 1.1.3 对面向对象方法的支持
  9. 1.2 开发工具
  10. 1.2.1 常见的C++开发工具
  11. 1.2.2 Visual C++6.0开发环境简介
  12. 1.2.3 Visual C++6.0开发环境的使用
  13. 1.2.4 Visual C++6.0使用示例
  14. 1.3 程序结构
  15. 1.3.1 第一个程序
  16. 1.3.2 文件的组织
  17. 1.4 编码规范
  18. 1.4.1 风格指南
  19. 1.4.2 注释的使用
  20. 1.4.3 美化代码
  21. 1.5 标识符
  22. 1.5.1 保留字
  23. 1.5.2 标识符命名
  24. 上机实训
  25. 本章小结
  26. 习题
  27. 第2章 基本数据类型与表达式
  28. 2.1 C++基本数据类型
  29. 2.2 变量
  30. 2.2.1 什么是变量
  31. 2.2.2 定义变量
  32. 2.2.3 为变量赋初值
  33. 2.3 常量
  34. 2.3.1 数值常量
  35. 2.3.2 字符常量
  36. 2.3.3 符号常量
  37. 2.3.4 常变量
  38. 2.4 运算符和表达式
  39. 2.4.1 赋值操作符
  40. 2.4.2 数学运算符
  41. 2.4.3 位操作符
  42. 2.4.4 复合赋值操作符
  43. 2.4.5 增1减1操作符
  44. 2.4.6 关系运算符
  45. 2.4.7 逻辑运算符(!,&&,||)
  46. 2.4.8 条件运算符(?)
  47. 2.4.9 逗号运算符(,)
  48. 2.4.10 变量类型转换运算符
  49. 2.4.11 sizeof()
  50. 2.4.12 其他运算符
  51. 2.4.13 运算符的优先度Precedence of operators
  52. 上机实训
  53. 一、项目描述
  54. 二、项目要求
  55. 本章小结
  56. 习题
  57. 第3章 C++程序的流程控制
  58. 3.1 顺序控制语句
  59. 3.2 条件分支结构
  60. 3.2.1 if语句
  61. 3.2.2 if语句的嵌套
  62. 3.2.3 if多分支结构
  63. 3.2.4 switch语句和switch多分支结构
  64. 3.3 循环结构
  65. 3.3.1 for循环
  66. 3.3.2 循环结构的特殊控制:break和continue的使用
  67. 3.3.3 while循环
  68. 3.3.4 do…while循环
  69. 上机实训
  70. 一、项目描述
  71. 二、项目要求
  72. 本章小结
  73. 习题
  74. 第4章 C++函数
  75. 4.1 函数的定义
  76. 4.1.1 如何定义和使用函数
  77. 4.1.2 系统函数
  78. 4.1.3 函数的声明和定义
  79. 4.1.4 主函数main()
  80. 4.1.5 函数调用格式及调用方式
  81. 4.2 函数存在的意义、为什么要使用函数
  82. 4.3 函数重载
  83. 4.4 函数的默认参数
  84. 4.4.1 定义默认参数的顺序
  85. 4.4.2 默认参数和重载函数的混淆
  86. 4.5 C++中函数变量的引用
  87. 4.5.1 引用
  88. 4.5.2 用引用传递参数
  89. 4.6 C++函数的递归调用
  90. 4.7 内嵌函数
  91. 4.8 函数和变量的作用域
  92. 4.8.1 C++的存储属性
  93. 4.8.2 函数的作用域
  94. 4.8.3 变量的作用域和生存期
  95. 4.8.4 C++变量的可见性
  96. 4.9 编译预处理
  97. 4.10 函数模板
  98. 上机实训
  99. 一、项目描述
  100. 二、项目要求
  101. 本章小结
  102. 习题
  103. 第5章 数组
  104. 5.1 C++数组的声明和初始化
  105. 5.1.1 一维数组的声明
  106. 5.1.2 数组的初始化
  107. 5.1.3 引用一维数组的元素
  108. 5.1.4 一维数组程序举例
  109. 5.1.5 C++省略数组大小的写法
  110. 5.2 C++数组的存储
  111. 5.2.1 内存和地址
  112. 5.2.2 数组在内存中的存储情况
  113. 5.2.3 字符的存储情况
  114. 5.2.4 字符数组在内存中的存储情况
  115. 5.3 二维数组的定义和引用
  116. 5.3.1 二维数组的定义
  117. 5.3.2 二维数组的引用
  118. 5.3.3 二维数组的初始化
  119. 5.3.4 二维数组程序举例
  120. 5.4 用数组名作函数参数
  121. 5.4.1 用数组元素作函数实参
  122. 5.4.2 用数组名作函数参数
  123. 上机实训
  124. 一、项目描述
  125. 二、项目要求
  126. 本章小结
  127. 习题
  128. 第6章 指针
  129. 6.1 指针的概念和指针变量的定义
  130. 6.1.1 指针的概念
  131. 6.1.2 指针变量的定义及初始化
  132. 6.2 C++指针的操作和运算
  133. 6.2.1 指针的加减运算
  134. 6.2.2 指针的关系运算
  135. 6.3 C++指针与保护
  136. 6.3.1 对内存只读的指针
  137. 6.3.2 指针型常量
  138. 6.4 C++指针与数组
  139. 6.4.1 数组名的实质
  140. 6.4.2 指针数组
  141. 6.4.3 应用举例
  142. 6.5 C++指针与函数
  143. 6.5.1 指针作为参数
  144. 6.5.2 指针作为返回值
  145. 6.6 C++堆内存空间
  146. 6.6.1 如何获得堆内存空间
  147. 6.6.2 释放内存
  148. 上机实训
  149. 一、项目描述
  150. 二、项目要求
  151. 本章小结
  152. 习题
  153. 第7章 自定义数据类型
  154. 7.1 枚举类型
  155. 7.2 结构体
  156. 7.3 结构体与函数
  157. 7.3.1 结构作为参数
  158. 7.3.2 结构作为返回值
  159. 7.4 结构数组与结构指针
  160. 7.4.1 结构数组
  161. 7.4.2 结构指针
  162. 上机实训
  163. 一、项目描述
  164. 二、项目要求
  165. 本章小结
  166. 习题
  167. 第8章 面向对象程序设计基础
  168. 8.1 面向对象的思想
  169. 8.1.1 结构化程序设计
  170. 8.1.2 面向对象程序设计
  171. 8.2 面向对象程序设计的基本概念
  172. 8.2.1 对象与类
  173. 8.2.2 消息
  174. 8.2.3 抽象性
  175. 8.2.4 封装性
  176. 8.2.5 继承性
  177. 8.2.6 多态性
  178. 上机实训
  179. 一、项目描述
  180. 二、项目要求
  181. 本章小结
  182. 习题
  183. 第9章 类和对象的创建
  184. 9.1 类和对象
  185. 9.1.1 类的声明及成员的访问控制
  186. 9.1.2 类的成员函数
  187. 9.1.3 对象的定义和引用
  188. 9.2 构造函数和析构函数
  189. 9.2.1 构造函数
  190. 9.2.2 带有默认参数的构造函数
  191. 9.2.3 析构函数
  192. 9.2.4 构造函数的重载
  193. 9.2.5 拷贝构造函数
  194. 9.2.6 类对象作为成员
  195. 9.3 对象数组与对象指针
  196. 9.3.1 对象数组
  197. 9.3.2 对象指针
  198. 9.3.3 指向对象本身的指针this
  199. 9.3.4 为对象动态分配内存
  200. 9.4 对象作为函数的参数
  201. 9.5 静态成员
  202. 9.5.1 静态数据成员
  203. 9.5.2 静态成员函数
  204. 9.6 友元
  205. 9.6.1 友元函数
  206. 9.6.2 友元成员
  207. 9.6.3 友元类
  208. 上机实训
  209. 一、项目描述
  210. 二、项目要求
  211. 本章小结
  212. 习题
  213. 第10章 类的继承与派生、多态与虚函数
  214. 10.1 类的层次与继承性
  215. 10.2 派生类
  216. 10.2.1 派生类的声明
  217. 10.2.2 派生类的访问权限
  218. 10.3 派生类的构造函数和析构函数
  219. 10.3.1 派生类构造函数和析构函数的执行顺序
  220. 10.3.2 派生类构造函数和析构函数的构建
  221. 10.4 多重继承
  222. 10.4.1 多重继承的概念
  223. 10.4.2 多重继承的声明
  224. 10.4.3 多重继承的构造函数和析构函数
  225. 10.4.4 虚基类
  226. 10.5 多态性
  227. 10.6 函数重载
  228. 10.7 运算符重载
  229. 10.7.1 运算符重载的基本概念
  230. 10.7.2 运算符重载为类的成员函数—成员运算符函数
  231. 10.7.3 运算符重载为类的友元函数—友元运算符函数
  232. 10.7.4 成员运算符函数与友元运算符函数的比较
  233. 10.7.5 “++”和“--”的重载
  234. 10.7.6 赋值运算符“=”的重载
  235. 10.7.7 函数调用运算符“()”的重载
  236. 10.7.8 下标运算符“[]”的重载
  237. 10.7.9 类类型转换函数
  238. 10.8 虚函数
  239. 10.8.1 虚函数的引入
  240. 10.8.2 虚函数的定义和使用
  241. 10.8.3 虚函数的限制
  242. 10.9 抽象类
  243. 10.9.1 纯虚函数
  244. 10.9.2 抽象类
  245. 上机实训
  246. 一、项目描述
  247. 二、项目要求
  248. 本章小结
  249. 习题
  250. 第11章 流类库和输入/输出
  251. 11.1 输入/输出流的概念
  252. 11.2 流类库
  253. 11.3 输入/输出的格式控制
  254. 11.3.1 用ios类的成员函数进行格式控制
  255. 11.3.2 使用格式控制符进行格式控制
  256. 11.4 用户自定义数据类型的输入/输出
  257. 11.4.1 重载输出运算符“<<”
  258. 11.4.2 重载输入运算符“>>”
  259. 11.5 文件的输入/输出
  260. 11.5.1 文件的打开与关闭
  261. 11.5.2 文件的读写
  262. 11.6 应用举例
  263. 上机实训
  264. 一、项目描述
  265. 二、项目要求
  266. 本章小结
  267. 习题
  268. 参考文献

常见问题

这本书适合零基础的编程小白吗?
本书虽然讲解系统,但C++本身是一门复杂性较高的语言。完全零基础的读者可能会在指针、内存管理等概念上遇到较大挑战。建议可以先了解一些最基本的计算机和编程常识,或具备极强的逻辑思维与学习毅力。
这本书的代码是基于哪个C++标准?
本书主要基于经典的C++98/03标准进行核心概念的讲解,同时引入了部分C++11/14的关键新特性作为补充。它是一本打牢基础的书,而非专门讲解最新标准的进阶读物。
学习完这本书能达到什么水平?
学习并消化本书内容后,你将建立起完整的C++基础语法和面向对象编程知识体系,能够理解中小型C++项目的代码结构,并具备独立编写结构良好的C++程序的能力。这为后续学习数据结构与算法、设计模式或深入研究现代C++标准奠定了坚实基础。

微信读书相关

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

何历怀 作者

何历怀是一位公开资料有限的作者,目前可查到其作品一种,即《C++程序设计》。从书名与常见分类来看,这本书属于编程设计类读物,内容应围绕C++语言的基础知识与程序设计方法展开,面向希望系统学习C++的读者。由于作者的个人背景、国籍、生卒年、学历与职业经历等信息均未见可靠记载,本文不对其生平作任何推测。就现有资料而言,何历怀的写作方向集中于计算机编程教育领域,其作品以C++语言教学为题材,具有入门与教学参考的性质,适合作为了解编程基础的学习材料。读者在阅读时可将该书与同类C++教材对照使用,以加深对语言特性的理解。

同类高分