天天看点

Effective C++点滴

1. 对于单纯的常量,最好以const对象或者enums替代#define

    对于形似函数的宏,最好用inline替代#define

2. 编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。

3. 多态基类应该声明一个virtual析构函数,如果不是作为基类或者多态用,则不应该声明virtual析构函数

4. 赋值函数应该确保复制“对象内的所有成员变量”及“所有的基类成分”

5. 赋值函数需要考虑自我赋值的异常情况

    Widget& Widget::operator=(const Widget& rhs)

    {

          if(this == &rhs) return *this;    //考虑自我赋值异常情况

          .....

          return *this;

    }