C 的50項條款

2021-04-28 14:15:44 字數 1661 閱讀 4389

條款1:盡量用const和inline而不用#define

條款2:盡量用而不用

條款3:盡量用new和delete而不用malloc和free

條款4:盡量使用c++風格的注釋

第二章 記憶體管理

條款5:對應的new和delete要採用相同的形式

條款6:析構函式裡對指標成員呼叫delete

條款7:預先準備好記憶體不夠的情況

條款8: 寫operator new和operator delete時要遵循常規

條款9: 避免隱藏標準形式的new

條款10: 如果寫了operator new就要同時寫operator delete

第三章 建構函式,析構函式和賦值操作符

條款11: 為需要動態分配記憶體的類宣告乙個拷貝建構函式和乙個賦值操作符

條款12: 盡量使用初始化而不要在建構函式裡賦值

條款13: 初始化列表中成員列出的順序和它們在類中宣告的順序相同

條款14: 確定基類有虛析構函式

條款15: 讓operator=返回*this的引用

條款16: 在operator=中對所有資料成員賦值

條款17: 在operator=中檢查給自己賦值的情況

第四章 類和函式:設計與宣告

條款18: 爭取使類的介面完整並且最小

條款19: 分清成員函式,非成員函式和友元函式

條款20: 避免public介面出現資料成員

軟體開發網

條款21: 盡可能使用const

條款22: 盡量用「傳引用」而不用「傳值」

條款23: 必須返回乙個物件時不要試圖返回乙個引用

條款24: 在函式過載和設定引數預設值間慎重選擇

條款25: 避免對指標和數字型別過載

條款26: 當心潛在的二義性

條款27: 如果不想使用隱式生成的函式就要顯式地禁止它

條款28: 劃分全域性名字空間

第五章 類和函式: 實現

條款29: 避免返回內部資料的控制代碼

條款30: 避免這樣的成員函式:其返回值是指向成員的非const指標或引用,但成員的訪問級比這個函式要低

條款31: 千萬不要返回區域性物件的引用,也不要返回函式內部用new初始化的指標的引用

條款32: 盡可能地推遲變數的定義

條款33: 明智地使用內聯

條款34: 將檔案間的編譯依賴性降至最低

第六章 繼承和物件導向設計

條款35: 使公有繼承體現 "是乙個" 的含義

條款36: 區分介面繼承和實現繼承

條款37: 決不要重新定義繼承而來的非虛函式

條款38: 決不要重新定義繼承而來的預設引數值

條款39: 避免 "向下轉換" 繼承層次

條款40: 通過分層來體現 "有乙個" 或 "用...來實現"

條款41: 區分繼承和模板

條款42: 明智地使用私有繼承

條款43: 明智地使用多繼承

條款44: 說你想說的;理解你所說的

第七章 雜項

條款45: 弄清c++在幕後為你所寫、所呼叫的函式

條款46: 寧可編譯和鏈結時出錯,也不要執行時出錯

條款47: 確保非區域性靜態物件在使用前被初始化

條款48: 重視編譯器警告

條款49: 熟悉標準庫

條款50: 提高對c++的認識

條款50 提高對C 的認識

class base class derived public base derived pd new derived pd f 10 錯誤 名字查詢先於型別檢查,現在derived類中找到f函式,然後進行型別檢查,報錯 問題在於derived f隱藏了base f,即使它們取的是不同的引數型別 所...

條款50 了解new和delete的合理替換時機

條款50 了解new和delete的合理替換時機 includeusing namespace std 替換編譯器提供的operator主要三個最覺的理由 1 用來檢測運用上的錯誤 為了強化效能 為了收集使用上的統計資料 static const int signature 0xdeadbeef t...

50項生活必須掌握的技能

要過得健康充實,還得靠自立。要學會自立,必須得掌握一些技巧。可能和你在學校裡學到的不同,但全才遠遠要比專門只會一樣的人更能夠適應生活。這裡是每個人都該學會的50件事情。不完全統計 1.生火 火能產生光和熱。這兩件是生存的必需品。也許在某個時候,這項技能可以救你的命。2.操作電腦 基本的電腦常識是現代...