实用C++程序设计(第二版)
实用C++程序设计(第二版)
Steve Oualline
鄢爱兰, 周丽琴 译
出版时间:2004年06月
页数:592
有效地组织和处理信息。但是这一高级语言相对来说比较难于掌握,即使你已经掌握了C编程语言也是如此。
本书为第二版,向想学习C++的程序员全面介绍了C++语言。该版本反映了C++标准的最新变化,采用切实的方法,着重介绍了如何设计清晰而有用的代码。
简而言之,恰到好处的每一章介绍了编程的各个方面,包括风格、软件工程、程序设计、面向对象设计和调试。本书还介绍了一些常见错误以及如何找到和避免这些错误。每章结尾的练习有助于确保读者掌握本章内容。
本书内容涵盖:
● C++语法
● 代码编写标准和风格
● 对象类的创建和使用
● 模板
● 调试和优化
● C++预处理器的使用
● 文件输入/输出
Steve Oualline的文笔流畅、语言朴素、写作风格独具魅力,加之他的实际动手的方法,使得本书成为掌握C++这一复杂而强大的编程语言的一条轻松的途径。
  1. 前言
  2. 第一部分 基础知识
  3. 第一章 什么是C++?
  4. C++简史
  5. C++的组织结构
  6. 如何学习C++
  7. 第二章 编程基础
  8. 程序从概念到执行
  9. 创建实际的程序
  10. 在Unix中获得帮助
  11. 在IDE中获得帮助
  12. 编程练习
  13. 第三章 风格
  14. 注释
  15. C++代码
  16. 命名风格
  17. 编写代码的信仰
  18. 缩排和代码格式
  19. 清晰
  20. 简单
  21. 一致性和组织结构
  22. 进一步阅读
  23. 小结
  24. 第四章 基本声明和表达式
  25. 基本的程序结构
  26. 简单表达式
  27. std::cout输出对象
  28. 变量和存储
  29. 变量声明
  30. 整数
  31. 赋值语句
  32. 浮点数
  33. 浮点除与整数除
  34. 字符
  35. 宽字符
  36. 布尔类型
  37. 编程练习
  38. 章节问题答案
  39. 第五章 数组、限定符和读数据
  40. 数组
  41. 字符串
  42. 读数据
  43. 初始化变量
  44. 多维数组
  45. C风格字符串
  46. 整数的类型
  47. 浮点数的类型
  48. 常量和引用声明
  49. 限定符
  50. 十六进制常量和八进制常量
  51. 用于执行快捷方式的操作符
  52. 副作用
  53. 编程练习
  54. 章节问题答案
  55. 第六章 判断和控制语句
  56. if语句
  57. else语句
  58. 如何不使用std::strcmp
  59. 循环语句
  60. while语句
  61. break语句
  62. continue语句
  63. 赋值在任何地方的副作用
  64. 编程练习
  65. 章节问题答案
  66. 第七章 编程过程
  67. 设置你自己的工作区域
  68. 规范
  69. 代码设计
  70. 原型
  71. Makefile
  72. 测试
  73. 调试
  74. 维护
  75. 修订
  76. 电子考古学
  77. 标记程序
  78. 使用调试器
  79. 使用文本编辑器作为浏览器
  80. 添加注释
  81. 编程练习
  82. 第二部分 简单编程
  83. 第八章 更多控制语句
  84. for语句
  85. switch语句
  86. switch、break和continue
  87. 编程练习
  88. 章节问题答案
  89. 第九章 变量作用域和函数
  90. 作用域和存储类别
  91. 名称空间
  92. 函数
  93. 参数类型的总结
  94. 递归
  95. 结构化的编程基础
  96. 实际编程
  97. 编程练习
  98. 章节问题答案
  99. 第十章 C++预处理器
  100. #define语句
  101. 条件编译
  102. #include文件
  103. 参数化的宏
  104. 高级特性
  105. 小结
  106. 编程练习
  107. 章节问题答案
  108. 第十一章 位操作
  109. 位操作符
  110. 与操作符(&)
  111. 按位或(|)
  112. 按位异或(^)
  113. 按位非操作符(~)
  114. 位左移和位右移操作符(<<, >>)
  115. 设置、清除和测试位
  116. 位映像图
  117. 编程练习
  118. 章节问题答案
  119. 第三部分 高级的类型和类
  120. 第十二章 高级类型
  121. 结构
  122. 联合
  123. typedef
  124. 枚举类型
  125. 位成员或紧缩结构
  126. 结构数组
  127. 编程练习
  128. 章节问题答案
  129. 第十三章 简单类
  130. 改进后的栈
  131. 类的使用
  132. 构造函数和析构函数简介
  133. 自动生成的成员函数
  134. 快捷方式
  135. 风格
  136. 结构和类
  137. 编程练习
  138. 第十四章 类的其他知识
  139. friends
  140. constant函数
  141. 常量成员
  142. 静态成员变量
  143. 静态成员函数
  144. static的含义
  145. 编程练习
  146. 第十五章 简单指针
  147. const指针
  148. 指针和输出
  149. 指针和数组
  150. reinterpret_cast
  151. 指针和结构
  152. 命令行参数
  153. 编程练习
  154. 章节问题答案
  155. 第四部分 高级编程概念
  156. 第十六章 文件输入/输出
  157. C++ 文件I/O
  158. 转换例程
  159. 二进制文件和ASCII文件
  160. 行结束难题
  161. 二进制I/O
  162. 缓冲问题
  163. 非缓冲I/O
  164. 设计文件格式
  165. C风格 I/O 例程
  166. C风格的转换例程
  167. C风格二进制I/O
  168. C风格I/O与C++风格I/O
  169. 编程练习
  170. 章节问题答案
  171. 第十七章 调试和优化
  172. 代码评审
  173. 顺序调试
  174. 获得输出结果
  175. 交互调试器
  176. 调试二分查找
  177. 交互调试技巧
  178. 运行时错误
  179. 优化
  180. 如何优化?
  181. 案例研究:内联函数和普通函数
  182. 案例研究:优化着色算法
  183. 编程练习
  184. 章节问题答案
  185. 第十八章 操作符重载
  186. 创建简单的定点类
  187. 操作符函数
  188. 操作符成员函数
  189. 缺点
  190. 定点类的完整定义
  191. 编程练习
  192. 章节问题答案
  193. 第十九章 浮点数
  194. 浮点格式
  195. 浮点加/减
  196. 乘法和除法
  197. 上溢和下溢
  198. 舍入误差
  199. 精确度
  200. 最小化舍入误差
  201. 确定精确度
  202. 精度和速度
  203. 幂级数
  204. 编程练习
  205. 第二十章 高级指针
  206. 指针、结构和类
  207. delete操作符
  208. 链表
  209. 有序链表
  210. 双向链表
  211. 输出一个树
  212. 程序的其他部分
  213. Chess程序的数据结构
  214. 编程练习
  215. 章节问题答案
  216. 第二十一章 高级类
  217. 派生类
  218. 虚函数
  219. 虚类
  220. 派生类中的函数隐藏
  221. 派生类中的构造函数和析构函数
  222. dynamic_cast操作符
  223. 小结
  224. 编程练习
  225. 章节问题答案
  226. 第五部分 其他语言特性
  227. 第二十二章 异常
  228. 在栈类中添加异常
  229. 异常和assert
  230. 编程练习
  231. 第二十三章 模块化编程
  232. 模块
  233. public和private
  234. extern存储类
  235. 头文件
  236. 模块体
  237. 使用无限数组的一个程序
  238. 多个文件的Makefile
  239. 使用无限数组
  240. 将一个任务划分成多个模块
  241. 模块设计指南
  242. 编程练习
  243. 第二十四章 模板
  244. 什么是模板?
  245. 模板:比较困难的方式
  246. 模板:C++采用的方式
  247. 函数特殊化
  248. 类模板
  249. 类特殊化
  250. 实现细节
  251. 高级功能
  252. 小结
  253. 编程练习
  254. 第二十五章 标准模板库
  255. STL基础
  256. 类List —— 一个学生集合
  257. 使用STL列表创建一个等待列表
  258. 将成绩存储在STL映射中
  259. 全部输出
  260. 实际使用STL需要考虑的因素
  261. 获取更多信息
  262. 编程练习
  263. 第二十六章 程序设计
  264. 设计目标
  265. 设计要素
  266. 设计准则
  267. 编码
  268. 对象
  269. 实际设计技巧
  270. 小结
  271. 第二十七章 完整的开发过程
  272. 需求
  273. 代码设计
  274. 编码
  275. 功能说明
  276. 测试
  277. 修订版
  278. 最终警告
  279. 程序文件
  280. 编程练习
  281. 第二十八章 从C到C++
  282. K&R风格的函数
  283. struct
  284. malloc 和 free
  285. 将结构转变为类
  286. setjmp 和 longjmp
  287. 混合使用C和C++代码
  288. 小结
  289. 编程练习
  290. 第二十九章 C++遗忘的角落
  291. do/while
  292. goto
  293. ?: 结构
  294. 逗号操作符
  295. 重载()操作符
  296. 指向成员的指针
  297. asm语句
  298. 限定符mutable
  299. 运行期间类型判定
  300. 通配符
  301. 章节问题答案
  302. 第三十章 编程格言
  303. 一般
  304. 设计
  305. 声明
  306. switch语句
  307. 预处理器
  308. 风格
  309. 编译
  310. C++程序员十诫
  311. 最后注意事项
  312. 章节问题答案
  313. 第六部分 附录
  314. 附录一 ASCII表
  315. 附录二 范围
  316. 附录三 操作符优先规则
  317. 附录四 使用幂级数计算正弦值
  318. 附录五 资源
  319. 索引
书名:实用C++程序设计(第二版)
作者:Steve Oualline
译者:鄢爱兰, 周丽琴 译
国内出版社:中国电力出版社
出版时间:2004年06月
页数:592
书号:7-5083-1411-5
原版书出版商:O'Reilly Media
Steve Oualline
 
Steve Oualline 11岁时写出了他的第一个程序。这个程序有一个错误。从那时起,他就开始研究编程的实用方法使得产生错误的机会大为降低。他目前在南加州任软件工程师。他的业余时间花在Poyay-Midland铁路蒸汽火车的实际工程中。
 
 
本书封面上的动物是东部花栗鼠(Eastern chipmunk),是一种身上有花纹的地鼠,主要分布于北美洲东部。花栗鼠的背面从头部到臀部有五条深条纹和两条浅条纹,毛茸茸的长尾巴上有两条条纹。根据它们眼部上下两条白条纹能够将它们和其他地鼠区分开来。整个北美洲的花栗鼠的颜色各不相同,但是同一地区的花栗鼠的颜色却是一样的。
花栗鼠总是在森林中的空地或农田上安家。在这些地方,它们能够打通到石头墙、坏掉的树木或厚草丛中建立的窝的入口。它们的窝包括一个通向一个大型细页状窝的迷宫通道。白天,花栗鼠都在屋外,但是在天黑之前,它们一定会回到窝里。虽然它们的攀爬能力很强,但是它们主要生活在地面上。
花栗鼠主要以坚果、种子、昆虫为生,偶尔也吃鸟蛋。同所有其他地鼠一样,它们也有大颊囊,有的时候这个颊囊能达到它们的肩部,这个颊囊主要用于储存食物。花栗鼠会在夏秋两个季节收集并存储坚果和种子。天气转冷时,一个地区的所有花栗鼠会突然全部消失。它们躲进了自己的窝中,开始冬眠。在冬天比较温暖的日子里,在雪地上可以看到花栗鼠的脚印,因为气温回升时,花栗鼠会醒来离开它们的窝一小段时间。
东部花栗鼠的交配季节为三月中旬到四月上旬。怀孕31天左右,之后会生出一窝小花栗鼠,一般为3~6只。一个月之后,小花栗鼠就会离开它们的窝,一般到七月份就长大了。
花栗鼠的名字很有可能来自它们发出的声音。花栗鼠发出的声音很响,听起来像“cheep”的发音。经常能够看到花栗鼠从树枝上倒挂下来,发出“cheep”的叫声。