More Effective C++ 精简版(目录)

3.      基础议题  

3.1    Item M1:指针与引用的区别

3.2    Item M2:尽量使用C++风格的类型转换

3.3    Item M3:不要对数组使用多态

3.4    Item M4:避免无用的缺省构造函数

4.      运算符

4.1    Item M5:谨慎定义类型转换函数

4.2    Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 27

4.3    Item M7:不要重载“&&”,“||”, 或“,”

4.4    Item M8:理解各种不同含义的new和delete

5.      异常

5.1    Item M9:使用析构函数防止资源泄漏

5.2    Item M10:在构造函数中防止资源泄漏

5.3    Item M11:禁止异常信息(exceptions)传递到析构函数外

5.4    Item M12:理解“抛出一个异常”与“传递一个参数”或“调用一个虚函数”间的差异 

5.5    Item M13:通过引用(reference)捕获异常

5.6    Item M14:审慎使用异常规格(exception specifications)

5.7    Item M15:了解异常处理的系统开销

6.      效率

6.1    Item M16:牢记80-20准则(80-20 rule)

6.2    Item M17:考虑使用lazy evaluation(懒惰计算法)

6.3    Item M18:分期摊还期望的计算

6.4    Item M19:理解临时对象的来源

6.5    Item M20:协助完成返回值优化

6.6    Item M21:通过重载避免隐式类型转换

6.7    Item M22:考虑用运算符的赋值形式(op=)取代其单独形式(op)

6.8    Item M23:考虑变更程序库

6.9    Item M24:理解虚拟函数、多继承、虚基类和RTTI所需的代价

7.      技巧(Techniques,又称Idioms 或Pattern)

7.1    Item M25:将构造函数和非成员函数虚拟化

7.2    Item M26:限制某个类所能产生的对象数量

7.3    Item M27:要求或禁止在堆中产生对象

7.4    Item M28:灵巧(smart)指针

7.5    Item M29:引用计数

7.6    Item M30:代理类

7.7    Item M31:让函数根据一个以上的对象来决定怎么虚拟

8.      杂项

8.1    Item M32:在未来时态下开发程序

8.2    Item M33:将非尾端类设计为抽象类

8.3    Item M34:如何在同一程序中混合使用C++和C

8.4    Item M35:让自己习惯使用标准C++语言

 

转载于:https://www.cnblogs.com/ethan/archive/2007/03/13/673480.html

作者 : Scott Meyers 译序、导读 : 侯捷 译序(侯捷) C++ 是一个难学易用的语言! C++ 的难学,不仅在其广博的语法,以及语法背後的语意,以及语意背後的深层思维,以及深层思维背後的物件模型;C++ 的难学,还在於它提供了四种不同(但相辅相成)的程式设计思维模式:procedural-based,object-based,object-oriented,generic paradigm。 世上没有白吃的午餐。又要有效率,又要有弹性,又要前瞻望远,又要回溯相容,又要能治大国,又要能烹小鲜,学习起来当然就不可能太简单。 在如此庞大复杂的机制下,万千使用者前仆後续的动力是:一旦学成,妙用无穷。C++ 相关书籍之多,车载斗量;如天上繁星,如过江之鲫。广博如四库全书者有之(The C++ Programming Language、C++ Primer),深奥如重山复水者有之(The Annotated C++ Reference Manual, Inside the C++ Object Model),细说历史者有之(The Design and Evolution of C++, Ruminations on C++),独沽一味者有之(Polymorphism in C++, Genericity in C++),独树一帜者有之(Design Patterns,Large Scale C++ Software Design, C++ FAQs),程式库大全有之(The C++ Standard Library),另辟蹊径者有之(Generic Programming and the STL),工程经验之累积亦有之(Effective C++, More Effective C++, Exceptional C++)。 这其中,「工程经验之累积」对已具C++ 相当基础的程式员而言,有著致命的吸引力与立竿见影的帮助。Scott Meyers 的Effective C++ 和More Effective C++ 是此类佼佼,Herb Sutter 的Exceptional C++ 则是後起之秀。 这类书籍的一个共通特色是轻薄短小,并且高密度地纳入作者浸淫於C++/OOP 领域多年而广泛的经验。它们不但开展读者的视野,也为读者提供各种C++/OOP 常见问题或易犯错误的解决模型。某些小范围主题诸如「在base classes 中使用virtual destructor」、「令operator= 传回*this 的reference」,可能在百科型C++ 语言书籍中亦曾概略提过,但此类书籍以深度探索的方式,让我们了解问题背後的成因、最佳的解法、以及其他可能的牵扯。至於大范围主题,例如smart pointers, reference counting, proxy classes,double dispatching, 基本上已属design patterns 的层级! 这些都是经验的累积和心血的结晶。
"更有效的C"中文版目录可以按照以下方式进行组织: 一、 前言 1.1 缘起 1.2 目的 1.3 结构说明 二、C语言的基础知识回顾 2.1 C语言概述 2.2 C语言编译与执行过程 2.3 C语言的数据类型及其使用 2.4 C语言的基本语法 2.5 C语言的运算符及其使用 ... 三、提高C程序的性能 3.1 优化C程序的方法论 3.2 硬件与软件环境对性能的影响 3.3 性能评估与测试工具 3.4 代码优化技巧与规范 3.5 内存管理与优化 ... 四、高级C编程技巧 4.1 指针与内存操作 4.2 结构体与联合体 4.3 动态内存分配 4.4 函数指针与回调 4.5 模块化与模块间通信 ... 五、并发与多线程编程 5.1 并发编程的基本概念 5.2 同步与互斥机制 5.3 线程创建与管理 5.4 线程间通信与同步 5.5 并发编程中的常见问题与解决方案 ... 六、异常处理与错误调试 6.1 异常处理的基本原则 6.2 错误处理与异常机制 6.3 断言与日志 6.4 调试技巧与工具使用 ... 七、C语言的扩展与应用 7.1 C语言标准库的扩展 7.2 C语言在系统编程中的应用 7.3 C语言在嵌入式编程中的应用 7.4 C语言在网络编程中的应用 7.5 C语言在游戏开发中的应用 ... 八、总结与展望 8.1 本书内容回顾 8.2 未来C语言发展趋势 8.3 结语 通过以上目录的组织,读者可以系统地了解C语言的基础知识及高级编程技巧,提高C程序的性能和效率,并扩展C语言的应用范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值