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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作者 : 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 的层级! 这些都是经验的累积和心血的结晶。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值