天天看點

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;

    }