盡量以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 預先...