《高质量程序设计指南——C++/C》(第三版)最新修订
2.Page 15:表1-2有些许印刷问题;
3.Page 56:“4.3 类型转换”一节上面一段末尾应从“关于复合...”处另起一行;
4.Page 58:示例4-6,代码用下列代码替换:
6.Page 81:示例4-20中的注释/*第三条...*/修改为/*第二条...*/;
7.Page 82:将例4的内容整个替换为:
例4:协助破案。假设已经查清,有A、B、C、D、E五个嫌疑人可能参与制造了一起银行抢劫案,但是不知道其中到底哪几个人是真正的案犯。不过,有确凿证据表明:
① 如果A参与了作案,则B一定也会参与。
② B和C两人中只有一人参与了作案。
③ C和D要么都参与了作案,要么都没有参与。
④ D和E两个人中至少有一人参与作案。
⑤ 如果E作案,则A和D一定参与作案。
是不是有点绕口?我们可以用数理逻辑中的正规表达式来表示上述论断:
① A→B
② (B∧ C)∨( B∧C)
③ (C∧D)∨( C∧ D)
④ (D∨E)
⑤ E→(A∧D)
我们现在用1(可理解为TRUE)表示作案,0(可理解为FALSE)表示未作案,则每个人的取值范围就是{0,1}。然后我们在5个人取值的所有可能的组合空间中进行搜索,如果某个组合同时满足这5条线索,那么它就是本案的答案了。于是,上述正规表达式可以进一步表示为下列C++/C逻辑表达式:
① A == 0 ||(A == 1 && B == 1)
② B + C == 1
③ C == D
④ D + E >= 1
⑤ E == 0 ||(E == 1 && A == 1 && D == 1)
我们用另一个变量count来表示组合空间中某一个组合能够满足几条论断,如果出现了这样一个组合:它同时满足了这5条论断,那么它就是我们要找的组合。程序见示例4-21。
示例4-21
8.Page 83:在“最后我们举一个数值计算...。”一行前面插入“例5:数值计算。”;
9.Page 88:[建议5-1]中的示例代码:两个MAX和PI应该垂直对齐,后面的注释也垂直对齐;
10.Page 91:“C++程序”所在一行中:右边的[方法二]和左边的[方法二]要水平对齐,调整后后面的[方法三]和[方法四]也要分别与左边的[方法三]和[方法四]水平对齐;
11.Page 93:倒数第10行,将“…定义和初始化每一个常量时,一次一个样。”修改为“…定义和初始化每一个常量一次。”;
12.Page 96:示例6-1:将“T是形参”修改为“_T是形参”;
13.Page 107:示例6-8中,后面的注释行要垂直对齐;
14.Page 122:示例7-1中,所有“cout <<...”行中的“:0x”要垂直对齐;
15.Page 144:示例8-5右半边“char ch; ”一行要缩进4格垂直对齐;
16.Page 147:上方代码中最后一个“:8”中间插入一个空格;
17.Page 149:示例8-9中,将“sizeof(X) = 4”修改为“sizeof(X) = 8”;
18.Page 154/155:图8-6和图8-7中m_price的长度应该是8字节而不是4字节,这是个笔误。修正后的图参见相册中的图8-6和图8-7。
19.Page 167:第(7)条中,“#define SQUARE(x)((x)*(x))”中间要插入几个空格,即修改为“#define SQUARE(x) ((x)*(x))”;“#define SQUARE(x)x * x”的中间也插入几个空格,即修改为“#define SQUARE(x) x * x”;
20.Page 168:第(8)条中,把“否则将导致变量的多次求值”修改为“否则可能导致变量多次求值,且结果可能与预期不符,因为复合表达式中子表达式的求值顺序可能因具体编译器的不同而不同。”;
21.Page 168:第(8)条中,把“其结果将是30而不是期望的25,这是因为展开的结果为:int x = ((n++) * (n++));”修改为“其结果可能是30,但也可能是25。”;
22.Page 170:示例9-2中,将下列代码:
24.Page 183:示例10-6用下面的代码替换:
27.Page 199:图12-1用相册中的图12-1替换(原图没有使用斜体)。
28.Page 200:示例12-11中,class Eye的“public:”所在行左移4格垂直对齐,同时void行向右缩进4格;同时正数第13行“...返回其中任意一个接口指针”修改为“...返回其中任意一个接口的指针”;
29.Page 201:上方class Head的private部分以m_打头的部分要垂直对齐;
30.Page 207:倒数第12和13行,请把“//(3)”和“// OK!”垂直对齐;
31.Page 210:示例12-19,最后一行向左移4格垂直对齐;
32.Page 233:上方“class B”行向左移4格垂直对齐;
33.Page 270:把示例15-3中第8行到第13行分别左移4格;
34.Page 275:把[建议15-1]中的“比如反跟踪”修改为“(比如反跟踪)”;
35.Page 297:示例16-10:最后的“catch”一行向左移4格对齐;
36.Page 301:正数第6行末尾句号改为冒号;
37.Page 309:把“…必须派生自类似于接口IUnknown类”修改为“…必须派生自类似于接口IUnknown的类”;
38.Page 309:将图16-1用相册中的图16-1替换。
39.Page 310:示例16-22中间“strVect.insert(…);”、“}”和“…”所在的三行都分别右缩进4格;
40.Page 310:将“而不是真正数据”修改为“而不是真正的数据”;将“…指针元素指向对象”修改为“…指针元素所指对象”;
41.Page 317:最后一行末尾句号修改为冒号;
42.Page 320:示例16-30,把“void func()”和“{”两行左移4格对齐;
43.Page 320:示例16-31中,把最后一行右缩进4格对齐;
44.Page 333:正数第15行末尾句号改为冒号;
45.Page 341:倒数第9行末尾句号改为冒号;
46.Page 343:示例17-7用下面的代码替换:
48.Page 357:图17-12存在一些问题,不知道是印刷问题还是绘图有问题。修正后的图参见相册中的图17-12。
49.附录E:“POD”所在行右边中文解释没有对齐,只需在末尾换行即可。
《高质量程序设计指南——C++/C》(第三版)最新修订相关推荐
- 《高质量程序设计指南——C++/C》第三版勘误
<高质量程序设计指南--C++/C>第三版勘误 1.Page IX:1.5 "关于软件开发..."存在印刷问题: 2.Page 7:倒数第13行,"啰里啰唆& ...
- C语言书籍阅读-读书笔记--高质量程序设计指南》--C/C++,林锐
最近闲下来想找机会参加一些编程比赛锻炼锻炼,可没有一个相关网站可以搜集这些信息,因而自己记录下来: 百度之星,http://star.baidu.com/index/developer.时间07.25 ...
- 高质量程序设计指南C/C++阅读笔记
阅读书籍:<高质量程序设计指南C/C++语言>林锐.韩勇泉著 说明: 本文档为阅读笔记,要求有一定的C/C++基础,属于提高篇 一.软件质量基本概念 功能属性: 1.正确性Correcte ...
- 【转贴】对《高质量程序设计指南--C++/C第二版》的探讨
<高质量程序设计指南--C++/C(第二版)>的读书心得 作者:fang_rk 写这篇文章是出于一个偶尔的原因:读计算机系的女友即将升入研究生三年级,她说 ...
- 高质量程序设计指南:C++/C语言
<高质量程序设计指南:C++/C语言> 基本信息 作者: 林锐 韩永泉 [作译者介绍] 出版社:电子工业出版社 ISBN:9787121186172 上架时间:2012-10-24 出版日 ...
- 《高质量程序设计指南——C/C++语言》之开篇记
<高质量程序设计指南--C/C++语言>是林锐博士和韩永泉先生撰写的著作,记得刚毕业那会读过了.应该说,这本书是对学校教科书的一个很好补充和提高.关于C/C++的经典书籍,国外已经有很多很 ...
- 《高质量程序设计指南——C/C++语言》第1章 高质量软件开发之道
第1章 高质量软件开发之道 本书的第1章之高质量软件开发之道,作者用大量的篇幅介绍了"软件质量"的基本概念,解释了软件质量的十大属性.这十大质量属性又分为功能性和非功能性两类,功能 ...
- 高质量程序设计指南附录试题
附录B :C++/C试题 本试题仅用于考查C++/C程序员的基本编程技能.内容限于C++/C常用语法,不涉及数据结构.算法以及深奥的语法.考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不 ...
- C++ 高质量程序设计指南读书笔记
第四章 入门 1,全局变量的初始化不要依赖另一个全局变量.因为无法判断顺序. 2,每一个源代码文件就是一个最小的编译单元,每一个编译单元都能独立编译而不需要知道其他编译单元的存在及其编译结果.好处:公 ...
- 高质量程序设计指南c++/c语言(33)--函数指针
函数类型由其返回类型和形参表确定,而与函数名无关. // pf points to function returning bool that takes two const string refere ...
最新文章
- 文章3:车载LIDAR点云数据中杆状地物自动提取与分类
- redis 数据结构 内存管理 持久化
- (转载)linux下输入输出重定向和管道符
- 日元兑换——国内兑换需要护照和签证,国外的机场有兑换ATM
- 一块钱哪里去了?--java浮点型背后的故事
- 如何改变本地git的根目录
- 移动磁盘文件或目录损坏且无法读取资料如何找回
- dedecms怎么改php版本_玩转Termux:手把手教你在手机上安装php与nginx!
- Angular2升级到Angular4
- 云漫圈 | 谈谈怎么做【服务隔离】
- 4.从Paxos到Zookeeper分布式一致性原理与实践--- Zookeeper 与 Paxos
- Base16,Base32,Base64编码详细学习
- 微信小程序真机提示error occurs:ENOENT: no such file or directory, access
- iOS微信分享及Universal Links
- 微商潮牌怎么引流?成功的人不是赢在起跑点
- 十进制转换为32进制,并反转
- Altium Designer布局布线技巧分享
- java中类的加载顺序
- OpenHarmony鸿蒙相关资料
- python实现自适应分辨率截取桌面图片并识别图片文字
热门文章
- (8)Spring框架----面向切面编程(AOP)的那些基础知识
- MySQL(6)-----数据类型
- K-th Number Poj - 2104 主席树
- cannot be cast to android.support.v4.app.Fragment
- Qss设置属性不进Set函数
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
- Docker快速入门(一)
- Android HandlerThread 消息循环机制之源代码解析
- JavaScript - 正则表达之二
- POJ1915(Knight Moves)