在review別人寫的c++**中,體會到如下常識性技巧,適合初學者去模仿:
常識技巧1: 在c++**中多使用巨集定義,提高**的維護成本,達到一改全改的目的,諸如:
可以在 ***_def.h 中定義:
#define begin_ccu_namespace() namespace ccu ;
以後再其他.h 定義中引入 ***_def.h 後使用:
諸如:sample.h 中:
#ifndef _sample_h_
#define _sample_h_
#include 「***_def.h」
begin_ccu_namespace()
class sample
end_ccu_namespace()
#endif
常識技巧2:大量的類並不需要可拷貝,也不需要乙個拷貝建構函式或賦值操作,不幸的是,如果你不主動宣告他們,編譯器會預設為你自動生成,而且是public的,可以考慮在private中新增空的拷貝建構函式和賦值操作,只有宣告,沒有定義,由於這些空程式被宣告為 private , 當其他**試圖使用它的時候,編譯器將報錯,為了方便,可以使用巨集
disable_copy_and_assign:
// 禁止使用拷貝極造函式和賦值操作的巨集
// 應在類的private:中使用
#define disallow_copy_and_assign(typename) typename(const typename&); void operator=(const typename&)
class foo ;
說明:,絕大多數情冴下都應使用disallow_copy_and_assign,如果類確實需要可拷貝,應在該類的標頭檔案中說明原由,幵適當定義拷貝極造函式和賦值操作,注意在operator=中檢測自賦值(self-assignment)情冴。 在將類作為stl容器值得時候,你可能有使類可拷貝的衝勱。類似情冴下,真正該做的是使用挃針挃向stl容器中的物件,可以考慮使用std::tr1::shared_ptr。
常識技巧3:只有乙個引數的建構函式,必須用 explict 關鍵字宣告,防止**轉換 ,避免不合時宜的變換。
常識技巧4:僅當只有資料時使用struct , 其他一概使用class
常識技巧5:使用組合(composition 這一點也是gof在《design patterns》裡反覆強調的)通常比使用繼承更適宜,如果使用繼承的話,叧使用公共繼承。
C 技巧,常識
1.可能是乙個被遺忘的運算子,很少看到有人用它,它的用法很簡單卻很實用 variable defaultvalue 相當於variable null defaultvalue variable 2.asp.net 中止當前請求直接返回 response.end 在做許可權判斷的時候可能用到 結合 h...
C 小技巧總結
net中的datetime結構類中的minvalue和maxvalue有時會引發乙個異常,那就是日期溢位的問題,您輸入的日期必須介於 1753 年 1 月 1 日到 9999 年 12 月 31 日之間,而datetime.minvalue實際上不是1753 年 1 月 1日,而是0000年 月 日...
C 技巧總結 1
1.usecontrol頁面在使用的時候,是沒有showdialog功能的。2.列表在潘頓是否為空的時候可以直接判斷列表元素的數量是否為零。3.foreach迴圈遍歷的時候,要模擬這個迴圈完整的執行過程,在不容易出錯,否則容易出現邏輯錯誤。4.在例項乙個物件時,要確認是否有值 在例項化後,也要確定是...