出版時(shí)間:2006-1 出版社:人民郵電出版社 作者:(美)Herb Sutter, Andrei Alexandrescu 頁(yè)數(shù):216 譯者:劉基誠(chéng)
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《C++編程規(guī)范:101條規(guī)則準(zhǔn)則與最佳實(shí)踐》中,兩位知名的C++專(zhuān)家將全球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ō)明;從類(lèi)型定義到錯(cuò)誤處理,都給出了最佳的C++實(shí)踐。即使使用C++多年的程序員也會(huì)從《C++編程規(guī)范:101條規(guī)則準(zhǔn)則與最佳實(shí)踐》中受益匪淺?!禖++編程規(guī)范:101條規(guī)則準(zhǔn)則與最佳實(shí)踐》適合于各層次C++程序員使用,也可作為高等院校C++課程的教學(xué)參考書(shū)。
作者簡(jiǎn)介
Herb Sutter ISO C++標(biāo)準(zhǔn)委員會(huì)主席,C++ Users Journal雜志特邀編輯和專(zhuān)欄作家。他目前在微軟公司領(lǐng)導(dǎo)NET環(huán)境下C++語(yǔ)言擴(kuò)展的設(shè)計(jì)工作。除本書(shū)外,他還撰寫(xiě)了三本廣受贊譽(yù)的圖書(shū): Exceptional C++ Style(中文版即將由人民郵電出版社出版)、Exceptional C++ Style和More Exceptional C++ Style。
書(shū)籍目錄
組織和策略問(wèn)題第0條 不要拘泥于小節(jié)(又名:了解哪些東西不應(yīng)該標(biāo)準(zhǔn)化)第l條 在高警告級(jí)別干凈利落地進(jìn)行編譯第2條 使用自動(dòng)構(gòu)建系統(tǒng)第3條 使用版本控制系統(tǒng)第4條 在代碼審查上投入設(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條 避免跨編譯單元的初始化依賴(lài)第22條 盡量減少定義性依賴(lài)。避免循環(huán)依賴(lài)第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條 考慮重載以避免隱含類(lèi)型轉(zhuǎn)換第30條 避免重載&&、ll或,(逗號(hào))第3l條 不要編寫(xiě)依賴(lài)于函數(shù)參數(shù)求值順序的代碼類(lèi)的設(shè)計(jì)與繼承第32條 弄清所要編寫(xiě)的是哪種類(lèi)第33條 用小類(lèi)代替巨類(lèi)第34條 用組合代替繼承第35條 避免從并非要設(shè)計(jì)成基類(lèi)的類(lèi)中繼承第36條 優(yōu)先提供抽象接口第37條 公用繼承即可替換性。繼承,不是為了重用,而是為了被重用第38條 實(shí)施安全的改寫(xiě)第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條 如果提供類(lèi)專(zhuān)門(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條 將基類(lèi)析構(gòu)函數(shù)設(shè)為公用且虛擬的,或者保護(hù)且非虛擬的第51條 析構(gòu)函數(shù)、釋放和交換絕對(duì)不能失敗第52條 致地進(jìn)行復(fù)制和銷(xiāo)毀-第53條 顯式地啟用或者禁止復(fù)制第54條 避免切片。在基類(lèi)中考慮用克隆代替復(fù)制第55條 使用賦值的標(biāo)準(zhǔn)形式第56條 只要可行,就提供不會(huì)失敗的swap(而且要正確地提供)名字空間與模塊第57條 將類(lèi)型及其非成員函數(shù)接口置于同名字空間中第58條 應(yīng)該將類(lèi)型和函數(shù)分別置于不同的名字空問(wèn)中,除非有意想讓它們一起工作第59條 不要在頭文件中或者樣include之前編寫(xiě)名字空間using第60條 要避免在不同的模塊中分配和釋放內(nèi)存第61條 不要在頭文件中定義具有鏈接的實(shí)體第62條 不要允許異常跨越模塊邊界傳播第63條 在模塊的接口中使用具有良好可移植性的類(lèi)型模板與泛型第64條 理智地結(jié)合靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性第65條 有意地進(jìn)行顯式自定義第66條 不要特化函數(shù)模板第67條 不要無(wú)意地編寫(xiě)不通用的代碼錯(cuò)誤處理與異常第68條 廣泛地使用斷言記錄內(nèi)部假設(shè)和不變式第69條 建立合理的錯(cuò)誤處理策略,并嚴(yán)格遵守第70條 區(qū)別錯(cuò)誤與非錯(cuò)誤第71條 設(shè)計(jì)和編寫(xiě)錯(cuò)誤安全代碼第72條 優(yōu)先使用異常報(bào)告錯(cuò)誤第73條 通過(guò)值拋出,通過(guò)引用捕獲第74條 正確地報(bào)告、處理和轉(zhuǎn)換錯(cuò)誤第75條 避免使用異常規(guī)范STL:容器第76條 默認(rèn)時(shí)使用vector。否則,選擇其他合適的容器第77條 用vector和string代替數(shù)組第78條 使用vector(和strlng::c-str)與非C++API交換數(shù)據(jù)第79條 在容器中只存儲(chǔ)值和智能指針第80條 用pusn—back代替其他擴(kuò)展序列的方式第8l條 多用范圍操作,少用單元素操作第82條 使用公認(rèn)的慣用法真正地壓縮容量,真正地刪除元素STL:算法第83條 使用帶檢查的STL實(shí)現(xiàn)第84條 用算法調(diào)用代替手工編寫(xiě)的循環(huán)第85條 使用正確的STL查找算法第86條 使用正確的STL排序算法第87條 使謂詞成為純函數(shù)第88條 算法和比較器的參數(shù)應(yīng)多用函數(shù)對(duì)象少用函數(shù)第89條 正確編寫(xiě)函數(shù)對(duì)象類(lèi)型安全第90條 避免使用類(lèi)型分支,多使用多態(tài)第91條 依賴(lài)類(lèi)型,而非其表示方式第92條 避免使用reinterpreLcast第93條 避免對(duì)指針使用static_cast第94條 避免強(qiáng)制轉(zhuǎn)換const第95條 不要使用c風(fēng)格的強(qiáng)制轉(zhuǎn)換第96條 不要對(duì)非POD進(jìn)行memcpy操作或者memcmp操作第97條 不要使用聯(lián)合重新解釋表示方式第98條 不要使用可變長(zhǎng)參數(shù)(…)第99條 不要使用失效對(duì)象。不要使用不安全函數(shù)第100條 不要多態(tài)地處理數(shù)組參考文獻(xiàn)摘要匯總索引
媒體關(guān)注與評(píng)論
今年是C++ 20周年,本書(shū)的出版可以說(shuō)是恰逢其時(shí)。本書(shū)是近年來(lái)最重要的C++圖書(shū),凝聚了C++界 20年的集體智慧。榮獲今年Jolt生產(chǎn)效率大獎(jiǎng)從某種意義上也證明了這一點(diǎn)。請(qǐng)注意它絕不是國(guó)內(nèi)曾經(jīng)出版的那些“規(guī)定代碼應(yīng)該縮進(jìn)幾格” 之類(lèi)的編碼規(guī)范書(shū)所能相提并論。 它首先是一本所有C++程序員都需要閱讀的最佳實(shí)踐指南,不僅涵蓋編程,也涉及類(lèi)的設(shè)計(jì)與優(yōu)化等主題。書(shū)中提到的許多應(yīng)該避免的問(wèn)題,即使是許多C++老手也會(huì)犯。有些反映的是業(yè)界最新的經(jīng)驗(yàn)總結(jié),蘊(yùn)涵著C++新的改進(jìn)方向(畢竟,本書(shū)的作者之一是C++標(biāo)準(zhǔn)委員會(huì)的主席)。有些技術(shù)細(xì)節(jié)非常深入。同時(shí),如果在學(xué)習(xí)C++的同時(shí),有本書(shū)在手,就能很好地避免形成一些常見(jiàn)的誤解,重走前人的老路。對(duì)相關(guān)各知識(shí)點(diǎn)的掌握也能更加深入?! ∑浯危彩情_(kāi)發(fā)小組制定自己所用編程規(guī)范的很好的起點(diǎn)。由于作者和技術(shù)審校團(tuán)隊(duì)的權(quán)威背景,本書(shū)的各種規(guī)則幾乎都是無(wú)可置疑的。以此為參考,能夠?qū)⒏鏖_(kāi)發(fā)小組的規(guī)范水平提高一個(gè)檔次。 最后,本書(shū)也是閱讀眾多C++經(jīng)典文獻(xiàn)的絕佳入口。因?yàn)閮?nèi)容是按知識(shí)點(diǎn)和條目形式組織的,每個(gè)條目最后又有相關(guān)的參考文獻(xiàn)及其章節(jié)編號(hào),查閱非常方便。
編輯推薦
《C++編程規(guī)范:101條規(guī)則準(zhǔn)則與最佳實(shí)踐》涵蓋了C++程序設(shè)計(jì)的方方面面,包括設(shè)計(jì)和編碼風(fēng)格、函數(shù)、操作符、類(lèi)的設(shè)計(jì)、繼承、構(gòu)造與析構(gòu)、賦值、名字空間、模塊、模板、泛型、異常、STL容器和算法等。書(shū)中對(duì)每一條規(guī)范都給出了言簡(jiǎn)意賅的敘述,并輔以實(shí)例說(shuō)明;書(shū)中還給出了從類(lèi)型定義到錯(cuò)誤處理等方面大量的C++最佳實(shí)踐,包括許多最新總結(jié)出的和標(biāo)準(zhǔn)化的技術(shù),即使使用C++多年的程序員也會(huì)從中受益匪淺。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版