《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

 

《Effective C++》:条款35:考虑virtual函数以外的其他选择

virtual函数在派生中经常用到,在遇到一些问题时用virtual函数没问题,但是有时候我们应该思考一下是否有替代方案,以此来拓宽我们的视野。...
  • KangRoger
  • KangRoger
  • 2015年03月02日 21:12
  • 2061

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

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

《Effective C++》学习笔记——条款35

条款 35:考虑virtual函数以外的其他选择
  • lx417147512
  • lx417147512
  • 2016年02月22日 00:29
  • 654

Effective Modern C++ 条款35 比起基于线程编程,更偏爱基于任务编程

Effective Modern C++ 条款35
  • big_yellow_duck
  • big_yellow_duck
  • 2016年09月11日 16:06
  • 1000

读《More Effective C++35个改善编程与设计的有效方法》之条款3:绝对不要以多态方式处理数组

有以下程序: class Base { public: Base(int n = 0) : _b(n) {} int _b; }; class Devide : public Base { p...
  • smsmn
  • smsmn
  • 2016年05月15日 10:44
  • 315

《Effective C++》:条款28-条款29

条款28避免返回handles指向对象内部成分:指的是不能返回对象内部数据/函数的引用、指针等。 条款29为异常安全而努力是值得的:指的是要有异常处理机制,避免发生异常时造成资源泄露等问题。...
  • KangRoger
  • KangRoger
  • 2015年02月19日 19:47
  • 1395

《Effective C++》:条款41-条款42

条款41了解隐式接口和编译期多态 条款42了解typename的双重意义条款
  • KangRoger
  • KangRoger
  • 2015年03月10日 22:13
  • 1248

Effective C++ 条款2

尽量以const、enum、inline替换#define首先,大家要明白一个道理。#define是什么,有什么作用。很简单,大家都知道#define实现宏定义,如下代码:#define Flag 1...
  • u011058765
  • u011058765
  • 2015年06月19日 12:06
  • 502

《Effective C++》:条款44-条款45

条款44将与参数无关的代码抽离templates 条款45运用成员函数模板接受所有兼容类型...
  • KangRoger
  • KangRoger
  • 2015年03月12日 22:01
  • 1512

《Effective C++》资源管理:条款13-条款15

在系统中,资源是有限的,一旦用完必须归还给系统,否则可能会造成资源耗尽或其他问题。例如,动态分配的内存如果用完不释放会造成内存泄漏。 这里说的资源不仅仅是指内存,还包括其他,例如文件描述符、网络连接、...
  • KangRoger
  • KangRoger
  • 2015年01月14日 21:46
  • 1333
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《More Effective C++》35个条款
举报原因:
原因补充:

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