C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐
本文關(guān)鍵詞:C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐,由筆耕文化傳播整理發(fā)布。
C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐
在《C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐》中,兩位知名的C++專家將全球C++界20年的集體智慧和經(jīng)驗(yàn)?zāi)Y(jié)成一套編程規(guī)范。這些規(guī)范可以作為每一個(gè)開(kāi)發(fā)團(tuán)隊(duì)制定實(shí)際開(kāi)發(fā)規(guī)范的基礎(chǔ),更是每一位C++程序員應(yīng)該遵循的行事準(zhǔn)則。書(shū)中對(duì)每一條規(guī)范都給出了精確的描述,,并輔以實(shí)例說(shuō)明;從類型定義到錯(cuò)誤處理,都給出了最佳的C++實(shí)踐,即使使用C++多年的程序員也會(huì)從《C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐》中受益匪淺。
《C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐》適合于各層次C++程序員使用,也可作為高等院校C++課程的教學(xué)參考書(shū)。
組織和策略問(wèn)題
第0條 不要拘泥于小節(jié)(又名:了解哪些東西不應(yīng)該標(biāo)準(zhǔn)化)
第1條 在高警告級(jí)別干凈利落地進(jìn)行編譯
第2條 使用自動(dòng)構(gòu)建系統(tǒng)
第3條 使用版本控制系統(tǒng)
第4條 做代碼審查 9設(shè)計(jì)風(fēng)格
第5條 一個(gè)實(shí)體應(yīng)該只有一個(gè)緊湊的職責(zé)
第6條 正確、簡(jiǎn)單和清晰 第一
第7條 編程中應(yīng)知道何時(shí)和如何考慮可伸縮性
第8條 不要進(jìn)行不成熟的優(yōu)化
第9條 不要進(jìn)行不成熟的劣化
第10條 盡量減少全局和共享數(shù)據(jù)
第11條 隱藏信息
第12條 懂得何時(shí)和如何進(jìn)行并發(fā)性編程
第13條 確保資源為對(duì)象所擁有。使用顯式的RAII和智能指針
編程風(fēng)格
第14條 寧要編譯時(shí)和連接時(shí)錯(cuò)誤,也不要運(yùn)行時(shí)錯(cuò)誤
第15條 積極使用const
第16條 避免使用宏
第17條 避免使用“魔數(shù)”
第18條 盡可能局部地聲明變量
第19條 總是初始化變量
第20條 避免函數(shù)過(guò)長(zhǎng),避免嵌套過(guò)深
第21條 避免跨編譯單元的初始化依賴
第22條 盡量減少定義性依賴。避免循環(huán)依賴
第23條 頭文件應(yīng)該自給自足
第24條 總是編寫(xiě)內(nèi)部#include保護(hù)符,決不要編寫(xiě)外部#include保護(hù)符
函數(shù)與操作符
第25條 正確地選擇通過(guò)值、(智能)指針或者引用傳遞參數(shù)
第26條 保持重載操作符的自然語(yǔ)義
第27條 優(yōu)先使用算術(shù)操作符和賦值操作符的標(biāo)準(zhǔn)形式
第28條 優(yōu)先使用++和--的標(biāo)準(zhǔn)形式。優(yōu)先調(diào)用前綴形式
第29條 考慮重載以避免隱含類型轉(zhuǎn)換
第30條 避免重載&&、||或 ,(逗號(hào))
第31條 不要編寫(xiě)依賴于函數(shù)參數(shù)求值順序的代碼
類的設(shè)計(jì)與繼承
第32條 弄清所要編寫(xiě)的是哪種類
第33條 用小類代替巨類
第34條 用組合代替繼承
第35條 避免從并非要設(shè)計(jì)成基類的類中繼承
第36條 優(yōu)先提供抽象接口
第37條 公用繼承即可替換性。繼承,不是為了重用,而是為了被重用
第38條 實(shí)施安全的覆蓋
第39條 考慮將虛擬函數(shù)聲明為非公用的,將公用函數(shù)聲明為非虛擬的
第40條 要避免提供隱式轉(zhuǎn)換
第41條 將數(shù)據(jù)成員設(shè)為私有的,無(wú)行為的聚集(C語(yǔ)言形式的struct)除外
第42條 不要公開(kāi)內(nèi)部數(shù)據(jù)
第43條 明智地使用Pimpl
第44條 優(yōu)先編寫(xiě)非成員非友元函數(shù)
第45條 總是一起提供new和delete
第46條 如果提供類專門(mén)的new,應(yīng)該提供所有標(biāo)準(zhǔn)形式(普通、就地和不拋出)
構(gòu)造、析構(gòu)與復(fù)制
第47條 以同樣的順序定義和初始化成員變量
第48條 在構(gòu)造函數(shù)中用初始化代替賦值
第49條 避免在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛擬函數(shù)
第50條 將基類析構(gòu)函數(shù)設(shè)為公用且虛擬的,或者保護(hù)且非虛擬的
第51條 析構(gòu)函數(shù)、釋放和交換絕對(duì)不能失敗
第52條 一致地進(jìn)行復(fù)制和銷毀
第53條 顯式地啟用或者禁止復(fù)制
第54條 避免切片。在基類中考慮用克隆代替復(fù)制
第55條 使用賦值的標(biāo)準(zhǔn)形式
第56條 只要可行,就提供不會(huì)失敗的swap(而且要正確地提供)
名字空間與模塊
模板與泛型
錯(cuò)誤處理與異!
STL:容器
STL:算法
類型安全
參考文獻(xiàn)
摘要匯總
索引
本文關(guān)鍵詞:C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐,由筆耕文化傳播整理發(fā)布。
本文編號(hào):107310
本文鏈接:http://sikaile.net/wenshubaike/mishujinen/107310.html