More Effective C++.doc
- 用C++语言自己来表达设计上的约束条件,而不是用注释或文档。如阻止继承,实例全部创建在堆中,阻止拷贝构造和赋值;
- 判断一个函数的含意,以及它被派生类重定义的话是否有意义。如果是有意义的,申明它为虚,即使没有人立即重定义它。如果不是的话,申明它为非虚,并且不要在以后为了便于某人而更改;确保更改是对整个类的运行环境和类所表示的抽象是有意义的
- 要将你的类设计得可以防止、检测或修正这些错误:抛异常,自己给自己赋值;在没有赋初值前就使用对象;给对象赋了值而没有使用;会赋过大的值、过小的值或空值
- 努力于可移植的代码。只有在性能极其重要时采用不可移植的结构才是可取的。
- 提供完备的类,即使某些部分现在还没有被使用。
- 考虑增加了你的代码的可重用性、可维护性、健壮性,已及在环境发生改变时易于修改。
- 如果一个类被设计为作一个基类使用(即使现在还没有被这么使用),它就应该有一个虚析构函数!