《More Effective C++》35个条款

原创 2006年06月26日 14:38:00

Basics:
1. Distinguish between pointers and references
2. Prefer C++-style casts
3. Never treat arrays polymorphically
4. Avoid gratuitous default constructors
Operators:
5. Be wary of user-defined conversion functions
6. Distinguish between prefix and postfix  forms of increment and decrement operators
7. Never overload ?||,  or,
8. Understand the different meaning of new and delete
Exceptions:
9. Use destructors to prevent resource leaks
10. Prevent resource leaks in constructors
11. Prevent exception from leaving destructors
12. Understand how throwing an exception differs from passing a parameter or calling a virtual funcation
13. Catch exceptions by reference
14. Use exception specifications judiciously
15. Understand the costs of exception handling
Efficiency:
16.Remember the 80-20 rule
17. Consider using lazy evaluation
18. Amortize the cost of excepted computations
19. Understand the origin of temporary objects
20. Facilitate the return value optimization
21. Overload to avoid implicit type conversations
22. Consider using op= instead of stand-alone op
23. Consider alternative libraries
24. Understand the costs of virtual funcations, multiple inheritance, vitual base class and RTTI
25. Virtualizing constructors and non-member functions
26. limiting the number of objects of a class
27. Requiring or prohibiting heap-based objects
28. Smart pointers
29. Reference counting
30. Proxy classes
31. Making functions virtual with respect to more than one object
Miscellany:
32. Program in the future tense
33. Make non-leaf classes abstract
34. Understand how to combine C++and C in the same program
35. Familiarize yourself with the language standard

 

相关文章推荐

《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?

一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?仔细想想,其实也是可以滴。 在C++中,类的对象建立分为两种,一种...

[More Effective C++]条款22有关返回值优化的验证结果

(这里的验证结果是针对返回值优化的,其实和条款22本身所说的,考虑以操作符复合形式(op=)取代其独身形式(op),关系不大。书生注) 在[More Effective C++]条款22的最后,...

《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?

昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间? 一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分...
  • hxz_qlh
  • hxz_qlh
  • 2013年10月26日 21:27
  • 5928

《More Effective C++》条款26:限制某个Class所能产生的对象数量

问题来源:假设系统中只有一台打印机,如何把打印机对象数止限定为一个。或者系统只提供16个可分发出去的文件描述符,如何确保文件描述符对象存在的数目不能超过16个。 在具体的应用过程中,我们可能需要限制...
  • hxz_qlh
  • hxz_qlh
  • 2013年11月04日 21:15
  • 877

more effective c++条款总结

条款一:仔细区别 pointer(指针)和references(引用)。 条款二:最好使用c++类型的转型操作符。 条款三:绝不要以多态方式处理数组。 条款四:非必要,不要提供无参构造。 条款...

[More Effective C++]条款十九:理解临时对象的来源

条款十九:理解临时对象的来源   当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里:   template   void swap...

Effective C++中文版(带完整条款书签)

  • 2016年06月02日 18:33
  • 16.85MB
  • 下载

Effective C++--条款03:尽可能使用const

如果const出现在*左端,表示被指物为常量,如果const出现在*右端,说明指针自身为常量。 例如: int b = 9; int a = 88; const int* p1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《More Effective C++》35个条款
举报原因:
原因补充:

(最多只允许输入30个字)