
| 知名作者Stephen C. Dewhurst教你. ·如何避免C++使用中的常见陷阱和复杂陷阱 ·如何编写可重用性和可维护性更好的代码.. ·如何应用高级的C++编程技术 ·以及学习C++语言的细微差别... |
| Stephen C. Dewhurst是贝尔实验室里最早使用C++语言的人之一。他将C++应用于编译器设计、电子商务、嵌入式通信等领域已有18年以上的经验。他是“Programming in C++”一书的合作者,是“C/C++Users Journal”杂志的编辑,是“C++ Report”的专栏作家。他是两个C++编译器的作者,发表过大量有关编译器设计和C++语言编程技巧的论文。... .. << 查看详细 |
| 译者序:技术翻译——一种笔记体式的创作尝试. 前言 致谢 第1章 基础问题 常见错误1:过分积极的注释 常见错误2:幻数 常见错误3:全局变量 常见错误4:未能区分函数重载和形式参数默认值 常见错误5:对引用的认识误区 常见错误6:对常量(性)的认识误区 常见错误7:无视基础语言的精妙之处 常见错误8:未能区分可访问性和可见性 常见错误9:使用糟糕的语言 常见错误10:无视(久经考验的)习惯用法 常见错误11:聪明反被聪明误 常见错误12:嘴上无毛,办事不牢 第2章 语法问题 常见错误13:数组定义和值初始化的语法形式混淆 常见错误14:捉摸不定的评估求值次序 常见错误15:(运算符)优先级问题 .常见错误16:for 语句引发的理解障碍 常见错误17:取大优先解析原则带来的问题 常见错误18:声明饰词次序的小聪明 常见错误19:“函数还是对象”的多义性 常见错误20:效果漂移的型别量化饰词 常见错误21:自反初始化 常见错误22:静态连接型别和外部连接型别 常见错误23:运算符函数名字查找的反常行为 常见错误24:晦涩难懂的operator-] 第3章 预处理器问题 常见错误25:使用#define定义的字面量 常见错误26:使用#define定义的伪函数(函数宏) 常见错误27:#if的滥用 常见错误28:断言(assert宏)的副作用 第4章 型别转换问题 常见错误29:以void *为型别转换的中介型别 常见错误30:截切问题 常见错误31:对目标型别为指涉物为常量的指针型别的型别转换的认识误区 常见错误32:对以指涉物为指向常量的指针型别的型别为目标型别的型别转换的认识误区 常见错误33:对以指涉物为指向基类型别的指针型别的型别为目标型别的型别转换的认识误区 常见错误34:指向多维数组的指针带来的问题 常见错误35:未经校验的向下转型 常见错误36:型别转换运算符的误用 常见错误37:始料未及的构造函数型别转换 常见错误38:在多继承条件下进行强制型别转换 常见错误39:对非完整型别做强制型别转换 常见错误40:旧式强制型别转换 常见错误41:静态强制型别转换 常见错误42:形式参数引发临时对象生成的初始化 常见错误43:临时对象的生存期 常见错误44:引用和临时对象 常见错误45:(动态强制型别转换运算符)dynamic_cast带来的多义性解析失败 常见错误46:对逆变性的误解 第5章 初始化问题 常见错误47:赋值与初始化混淆 常见错误48:位于非适当作用域的变量 常见错误49:未能意识到c++语言中复制操作的固守行为 常见错误50:按位复制的class对象 常见错误51:未能区分构造函数中的初始化和赋值 常见错误52:未能在成员初始化列表中保持次序一致性.. 常见错误53:对于虚基类(子对象)进行默认初始化 常见错误54:复制构造函数对基类子对象初始化的未预期行为 常见错误55:运行期静态初始化次序 常见错误56:直接与复制初始化 常见错误57:对参数的直接初始化 常见错误58:无视返回值优化 常见错误59:在构造函数中初始化静态(数据)成员 第6章 内存和资源管理问题 常见错误60:未能区分纯量与数组的内存分配机制 常见错误61:内存分配失败校验 常见错误62:(用自定义版本)替换全局的内存管理运算符(所调用的函数) 常见错误63:成员版本的operator new和operator delete的作用域和调用机制混淆 常见错误64:抛出字符串字面常量(作为异常对象) 常见错误65:未能正确理解和利用异常处理机制 常见错误66:滥用局部量地址 常见错误67:未能采用raii(资源获取即初始化)习惯用法 常见错误68:对auto_ptr的误用 第7章 多态问题 常见错误69:型别特征码 常见错误70:将基类析构函数声明为非虚函数 常见错误71:对非虚(成员)函数的遮掩 常见错误72:(以)过分灵活的(方式滥用)模板方法设计模式 常见错误73:重载虚函数 常见错误74:为参数指定默认初始化物的虚函数 常见错误75:在构造函数和析构函数中调用虚函数 常见错误76:虚赋值 常见错误77:未能区分(函数的)重载、改写和遮掩 常见错误78:未能深入理解虚函数和改写的实现机制 常见错误79:支配原则议题 第8章 型别设计问题 常见错误80:取/设状态接口 常见错误81:常量和引用数据成员 常见错误82:未能理解常量成员函数 常见错误83:未能区分强聚合和弱聚合 常见错误84:非适当的运算符重载 常见错误85:(运算符)优先级和重载 常见错误86:友元与成员运算符 常见错误87:自增/自减运算符的问题 常见错误88:对模板化的复制操作的认识误区 第9章 继承谱系设计问题 常见错误89:持有class对象的数组 常见错误90:非适当的容器型别之可替换性 常见错误91:未能理解protected访问层级 常见错误92:为代码复用而以public方式继承 常见错误93:以public方式继承具象类 常见错误94:未能运用继承谱系的退化形式 常见错误95:继承的滥用 常见错误96:依型别分派的控制结构 常见错误97:单根谱系 常见错误98:向class对象打探隐私 常见错误99:权能查询问题 中英文术语对照表... |
商品评论(0条)