第一章 從C轉(zhuǎn)向C++條款1:盡量用const和inline而不用#define
條款2:盡量用而不用
條款3:盡量用new和delete而不用malloc和free
條款4:盡量使用c++風(fēng)格的注釋第二章 內(nèi)存治理
條款5:對(duì)應(yīng)的new和delete要采用相同的形式
條款6:析構(gòu)函數(shù)里對(duì)指針成員調(diào)用delete
條款7:預(yù)先預(yù)備好內(nèi)存不夠的情況
條款8: 寫
Operator new和operator delete時(shí)要遵循常規(guī)
條款9: 避免隱藏標(biāo)準(zhǔn)形式的new
條款10: 假如寫了operator new就要同時(shí)寫operator delete
第三章 構(gòu)造函數(shù),析構(gòu)函數(shù)和賦值操作符
條款11: 為需要?jiǎng)討B(tài)分配內(nèi)存的類聲明一個(gè)拷貝構(gòu)造函數(shù)和一個(gè)賦值操作符
條款12: 盡量使用初始化而不要在構(gòu)造函數(shù)里賦值
條款13: 初始化列表中成員列出的順序和它們?cè)陬愔新暶鞯捻樞蛳嗤?br />
條款14: 確定基類有虛析構(gòu)函數(shù)
條款15: 讓operator=返回*this的引用
條款16: 在operator=中對(duì)所有數(shù)據(jù)成員賦值
條款17: 在operator=中檢查給自己賦值的情況
第四章 類和函數(shù):設(shè)計(jì)與聲明
條款18: 爭(zhēng)取使類的接口完整并且最小
條款19: 分清成員函數(shù),非成員函數(shù)和友元函數(shù)
條款20: 避免public接口出現(xiàn)數(shù)據(jù)成員
條款21: 盡可能使用const
條款22: 盡量用“傳引用”而不用“傳值”
條款23: 必須返回一個(gè)對(duì)象時(shí)不要試圖返回一個(gè)引用
條款24: 在函數(shù)重載和設(shè)定參數(shù)缺省值間慎重選擇
條款25: 避免對(duì)指針和數(shù)字類型重載
條款26: 當(dāng)心潛在的二義性
條款27: 假如不想使用隱式生成的函數(shù)就要顯式地禁止它
條款28: 劃分全局名字空間
第五章 類和函數(shù): 實(shí)現(xiàn)
條款29: 避免返回內(nèi)部數(shù)據(jù)的句柄
條款30: 避免這樣的成員函數(shù):其返回值是指向成員的非const指針或引用,但成員的訪問級(jí)比這個(gè)函數(shù)要低
條款31: 千萬不要返回局部對(duì)象的引用,也不要返回函數(shù)內(nèi)部用new初始化的指針的引用
條款32: 盡可能地推遲變量的定義
條款33: 明智地使用內(nèi)聯(lián)
條款34: 將文件間的編譯依靠性降至最低
第六章 繼續(xù)和面向?qū)ο笤O(shè)計(jì)
條款35: 使公有繼續(xù)體現(xiàn) "是一個(gè)" 的含義
條款36: 區(qū)分接口繼續(xù)和實(shí)現(xiàn)繼續(xù)
條款37: 決不要重新定義繼續(xù)而來的非虛函數(shù)
條款38: 決不要重新定義繼續(xù)而來的缺省參數(shù)值
條款39: 避免 "向下轉(zhuǎn)換" 繼續(xù)層次
條款40: 通過分層來體現(xiàn) "有一個(gè)" 或 "用...來實(shí)現(xiàn)"
條款41: 區(qū)分繼續(xù)和
模板條款42: 明智地使用私有繼續(xù)
條款43: 明智地使用多繼續(xù)
條款44: 說你想說的;理解你所說的
第七章 雜項(xiàng)
條款45: 弄清C++在幕后為你所寫、所調(diào)用的函數(shù)
條款46: 寧可編譯和鏈接時(shí)出錯(cuò),也不要運(yùn)行時(shí)出錯(cuò)
條款47: 確保非局部靜態(tài)對(duì)象在使用前被初始化
條款48: 重視編譯器警告
條款49: 熟悉標(biāo)準(zhǔn)庫
條款50: 提高對(duì)C++的熟悉