出版社:人民邮电出版社
年代:2010
定价:39.0
本书实际上涵盖了C++程序设计的每一个方面,包括设计和编码风格、类的设计、继承、构造与析构、名字空间、模块、模板、泛型、异常、STL容器等。书中给出的每一条规范都言简意赅,并辅以实例说明,书中还给出了从类型定义到错误处理等方面的大量C++最佳实践。
组织和策略问题
第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化)
第1条 在高警告级别干净利落地进行编译
第2条 使用自动构建系统
第3条 使用版本控制系统
第4条 做代码审查 9设计风格
第5条 一个实体应该只有一个紧凑的职责
第6条 正确、简单和清晰 第一
第7条 编程中应知道何时和如何考虑可伸缩性
第8条 不要进行不成熟的优化
第9条 不要进行不成熟的劣化
第10条 尽量减少全局和共享数据
第11条 隐藏信息
第12条 懂得何时和如何进行并发性编程
第13条 确保资源为对象所拥有。使用显式的RAII和智能指针
编程风格
第14条 宁要编译时和连接时错误,也不要运行时错误
第15条 积极使用const
第16条 避免使用宏
第17条 避免使用“魔数”
第18条 尽可能局部地声明变量
第19条 总是初始化变量
第20条 避免函数过长,避免嵌套过深
第21条 避免跨编译单元的初始化依赖
第22条 尽量减少定义性依赖。避免循环依赖
第23条 头文件应该自给自足
第24条 总是编写内部#include保护符,决不要编写外部#include保护符
函数与操作符
第25条 正确地选择通过值、(智能)指针或者引用传递参数
第26条 保持重载操作符的自然语义
第27条 优先使用算术操作符和赋值操作符的标准形式
第28条 优先使用++和--的标准形式。优先调用前缀形式
第29条 考虑重载以避免隐含类型转换
第30条 避免重载&&、||或 ,(逗号)
第31条 不要编写依赖于函数参数求值顺序的代码
类的设计与继承
第32条 弄清所要编写的是哪种类
第33条 用小类代替巨类
第34条 用组合代替继承
第35条 避免从并非要设计成基类的类中继承
第36条 优先提供抽象接口
第37条 公用继承即可替换性。继承,不是为了重用,而是为了被重用
第38条 实施安全的覆盖
第39条 考虑将虚拟函数声明为非公用的,将公用函数声明为非虚拟的
第40条 要避免提供隐式转换
第41条 将数据成员设为私有的,无行为的聚集(C语言形式的struct)除外
第42条 不要公开内部数据
第43条 明智地使用Pimpl
第44条 优先编写非成员非友元函数
第45条 总是一起提供new和delete
第46条 如果提供类专门的new,应该提供所有标准形式(普通、就地和不抛出)
构造、析构与复制
第47条 以同样的顺序定义和初始化成员变量
第48条 在构造函数中用初始化代替赋值
第49条 避免在构造函数和析构函数中调用虚拟函数
第50条 将基类析构函数设为公用且虚拟的,或者保护且非虚拟的
第51条 析构函数、释放和交换绝对不能失败
第52条 一致地进行复制和销毁
第53条 显式地启用或者禁止复制
第54条 避免切片。在基类中考虑用克隆代替复制
第55条 使用赋值的标准形式
第56条 只要可行,就提供不会失败的swap(而且要正确地提供)
名字空间与模块
模板与泛型
错误处理与异常
STL:容器
STL:算法
类型安全
参考文献
摘要汇总
索引
在《C++编程规范:101条规则、准则与最佳实践》中,两位知名的C++专家将全球C++界20年的集体智慧和经验凝结成一套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位C++程序员应该遵循的行事准则。书中对每一条规范都给出了精确的描述,并辅以实例说明;从类型定义到错误处理,都给出了最佳的C++实践,即使使用C++多年的程序员也会从《C++编程规范:101条规则、准则与最佳实践》中受益匪浅。
《C++编程规范:101条规则、准则与最佳实践》适合于各层次C++程序员使用,也可作为高等院校C++课程的教学参考书。
(加) 萨特 (Sutter,H.) , (罗) 安德烈亚历克斯安德莱斯库 (Alexandrescu,A.) , 著
( ) 萨特 (Sutter,H.) , ( ) 亚历山德雷斯库 (Alexandrescu,A.) , 著
(美) 萨特 (Sutter,H.) , (美) 亚历山德莱斯库 (Alexandrescu,A.) , 著
(美) 施密特 (Schmidt,D.C.) , (美) 休斯顿 (Huston,S.D.) , 编著
(美) 索尔特, (美) 凯乐普, 著
(美) 格莱戈尔 (Gregoire,M.) , (美) 凯乐普 (Kleper,S.J.) , 著
(美) 萨特 (Sutter,H.) , 著
(美) 赫勒 (Heller,S.) , 著
(美) 罗比斯 (Llopis,N.) , 著