天天看點

Effective C++ 第一章學習筆記

條款01:View C++ as a federation of languages;

條款02:Perfer consts, enums, and inlines to #define

                   盡量以const, enmuns, inline替換 #define

l  如果關鍵字const出現在星号左邊,表示被指物是常量;如果出現在星号右邊,便是指針自身是常量;如果出現在星号兩邊,表示被指物和指針兩者都是常量

l  如果被指物是常量,有些程式員會将關鍵字寫在類型之前,有些人會把它寫在類型之後、星号之前。EG.

Void f1(const Widget * pw);

Void f2(Widget const * pw);

l  對于單純常量,最後以const對象或enums替換#define;

l  對于形似函數的宏,最好改用inline函數替換#define;

條款03:盡可能使用const

l  将某些東西聲明為const 可以幫助編譯器偵查錯誤用法;

條款04:确定對象被使用前已先被初始化

l  對于内置對象,要對它手工初始化;

l  構造函數最好使用成員初始列,而不要在構造函數本體内使用指派操作。初值列列出的成員變量,其排列次序應該和他們在class中的聲明次序相同

以local static 對象替換non-local static對象