Effective C 條款02 不止於此

2021-10-09 23:16:12 字數 1000 閱讀 3087

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

eg:

解決方案:

const

3.5;

另外說說,定義常指標,倘若指標常量不變則寫兩遍const,通常被寫在標頭檔案中

const

char

*const chname =

"bobobo"

;

但是不如用std::string

const std::string chname =

"bobobo"

;//這樣定義更直觀簡潔

下面講講class專屬常量

class

global

; const

int global::numps;

//可有可無,可不進行賦值

** 類的靜態常量賦值後對於大部分編譯器不必在類外定義,反之則需要類外定義。

另一種方法 enum

class

global

;//列舉記號

int cty[numps]

;//使用記號名稱

};

這樣的好處是指標和引用都不能訪問enum,絕不會導致非必要的記憶體分配。

pointer和reference都可以指向const。

template <

typename t>

inline

void

biggest

(const t& a,

const t& b)

最後請記住:

對於單純變數,最好以const物件或enum替換#defines。

對於形似函式的巨集,最好改用inline函式替代#defines。

effective c 條款02 整理

盡量以const enum和inline代替 define 一 define的功能 參考 1 define的變體,即 ifndef,可以防止頭頭檔案的重複引用 ifdef和 define組合,一般用於標頭檔案中,用以實現防止多個檔案對此同乙個標頭檔案的重複引用.實際使用中,即使你的標頭檔案暫時沒有被...

Effective C 經驗條款

高效c 4 必須返回物件時,別妄想返回其reference 這句話什麼意思呢?就是在乙個函式內,如果你需要這個函式返回乙個新的物件,那麼這個函式的返回值型別就不要定義成引用型別。就直接返回這個類型別。首先,我們知道在函式傳遞引數時,傳遞引用的好處,尤其是對那麼比較大的型別,但是對於內建型別和stl的...

effective c 條款總結

條款1 盡量用const 和inline 而不用 define 條款2 盡量用而不用 條款3 盡量用new delete 而不用malloc free 條款4 盡量使用c 風格注釋 條款5 對應的new和delete 都要採用相同的形式 條款6 析構函式裡對指標成員呼叫delete條款 條款7 預先...