注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計C/C++及其相關(guān)編寫高質(zhì)量代碼:改善C++程序的150個建議

編寫高質(zhì)量代碼:改善C++程序的150個建議

編寫高質(zhì)量代碼:改善C++程序的150個建議

定 價:¥59.00

作 者: 李健 著
出版社: 機械工業(yè)出版社
叢編項:
標(biāo) 簽: VC++

ISBN: 9787111364092 出版時間: 2012-01-01 包裝: 平裝
開本: 16開 頁數(shù): 340 字?jǐn)?shù):  

內(nèi)容簡介

  《編寫高質(zhì)量代碼:改善C++程序的150個建議》是C++程序員進(jìn)階修煉的必讀之作,包含的全部都是C++編碼的最佳實踐,從語法、編碼規(guī)范和編程習(xí)慣、程序架構(gòu)和設(shè)計思想等三大方面對C++程序和設(shè)計中的疑難問題給出了經(jīng)驗性的解決方案,為C++程序員編寫更高質(zhì)量的C++代碼提供了150條極為寶貴的建議。每個問題都來自于實踐,都極具代表性,本書不僅以建議的方式正面為每個問題給出了被實踐證明為十分優(yōu)秀的解決方案,而且還從反面給出了被實踐證明為不好的解決方案,從正反兩個方面進(jìn)行了分析和對比。 《編寫高質(zhì)量代碼:改善C++程序的150個建議》在邏輯上一共分為三個部分:語法部分涵蓋C++從C語言繼承而來的一些極為重要但又極容易被誤解和誤用的一些語法特性,從C語言到C++的改變,以及內(nèi)存管理、類、模板、異常處理、STL等方面的內(nèi)容;編碼習(xí)慣和編程規(guī)范部分則主要討論了如何提高程序的正確性、可讀性、程序性能和編碼效率方面的問題;程序架構(gòu)和思想部分則從更高的高度對C++程序設(shè)計思維和方法進(jìn)行了審視,給出了一些頗具價值的觀點和最佳實踐。 這是一本關(guān)于如何提高C++程序設(shè)計效率與質(zhì)量的工具書,希望書中的每條建議都能引起你的思考,對于有難度的內(nèi)容,建議大家消化理解,切勿死記硬背,同時也希望大家能悟出更好的解決方案。希望本書中的每條建議所傳遞的思想和理念能夠滲透到大家的編碼實踐中,進(jìn)而幫助大家真正具備編寫高質(zhì)量C++代碼的能力。

作者簡介

  李健資深軟件開發(fā)工程師,畢業(yè)于中科院計算所,有多年C/C++開發(fā)經(jīng)驗,積累了豐富的實踐經(jīng)驗。曾經(jīng)參與了國家“十一五”863項目、北京市文化創(chuàng)意項目、上海世博會項目等多個項目的大型軟件的架構(gòu)、設(shè)計與開發(fā)。此外,對MPICH并行編程與高性能計算、腳本語言Lua、Android和iPhone等移動開發(fā)平臺也有一定的研究?;钴S于CSDN和博客園等技術(shù)社區(qū),發(fā)表和分享了大量技術(shù)文章,深受網(wǎng)友歡迎。

圖書目錄

前言
第一部分 語法篇
第1章 從C繼承而來的
建議0:不要讓main函數(shù)返回void
建議1:區(qū)分0的4種面孔
建議2:避免那些由運算符引發(fā)的混亂
建議3:對表達(dá)式計算順序不要想當(dāng)然
建議4:小心宏#define使用中的陷阱
建議5:不要忘記指針變量的初始化
建議6:明晰逗號分隔表達(dá)式的奇怪之處
建議7:時刻提防內(nèi)存溢出
建議8:拒絕晦澀難懂的函數(shù)指針
建議9:防止重復(fù)包含頭文件
建議10:優(yōu)化結(jié)構(gòu)體中元素的布局
建議11:將強制轉(zhuǎn)型減到最少
建議12:優(yōu)先使用前綴操作符
建議13:掌握變量定義的位置與時機
建議14:小心typedef使用中的陷阱
建議15:盡量不要使用可變參數(shù)
建議16:慎用goto
建議17:提防隱式轉(zhuǎn)換帶來的麻煩
建議18:正確區(qū)分void與void*
第2章 從C到C++,需要做出一些改變
建議19:明白在C++中如何使用C
建議20:使用memcpy()系列函數(shù)時要足夠小心
建議21:盡量用newdelete代替mallocfree
建議22:靈活地使用不同風(fēng)格的注釋
建議23:盡量使用C++標(biāo)準(zhǔn)的iostream
建議24:盡量采用C++風(fēng)格的強制轉(zhuǎn)型
建議25:盡量用const、enum、inline替換#define
建議26:用引用代替指針
第3章 說一說"內(nèi)存管理"的那點事兒
建議27:區(qū)分內(nèi)存分配的方式
建議28:newdelete與new[]delete[]必須配對使用
建議29:區(qū)分new的三種形態(tài)
建議30:new內(nèi)存失敗后的正確處理
建議31:了解new_handler的所作所為
建議32:借助工具監(jiān)測內(nèi)存泄漏問題
建議33:小心翼翼地重載operator new operator delete
建議34:用智能指針管理通過new創(chuàng)建的對象
建議35:使用內(nèi)存池技術(shù)提高內(nèi)存申請效率與性能
第4章 重中之重的類
建議36:明晰class與struct之間的區(qū)別
建議37:了解C++悄悄做的那些事
建議38:首選初始化列表實現(xiàn)類成員的初始化
建議39:明智地拒絕對象的復(fù)制操作
建議40:小心,自定義拷貝函數(shù)
建議41:謹(jǐn)防因構(gòu)造函數(shù)拋出異常而引發(fā)的問題
建議42:多態(tài)基類的析構(gòu)函數(shù)應(yīng)該為虛
建議43:絕不讓構(gòu)造函數(shù)為虛
建議44:避免在構(gòu)造析構(gòu)函數(shù)中調(diào)用虛函數(shù)
建議45:默認(rèn)參數(shù)在構(gòu)造函數(shù)中給你帶來的喜與悲
建議46:區(qū)分Overloading、Overriding及Hiding之間的差異
建議47:重載operator=的標(biāo)準(zhǔn)三步走
建議48:運算符重載,是成員函數(shù)還是友元函數(shù)
建議49:有些運算符應(yīng)該成對實現(xiàn)
建議50:特殊的自增自減運算符重載
建議51:不要重載operator&&、operator||以及operator,
建議52:合理地使用inline函數(shù)來提高效率
建議53:慎用私有繼承
建議54:抵制MI的糖衣炮彈
建議55:提防對象切片
建議56:在正確的場合使用恰當(dāng)?shù)奶匦?br /> 建議57:將數(shù)據(jù)成員聲明為private
建議58:明晰對象構(gòu)造與析構(gòu)的順序
建議59:明了如何在主調(diào)函數(shù)啟動前調(diào)用函數(shù)
第5章 用好模板,向著GP開進(jìn)
建議60:審慎地在動、靜多態(tài)之間選擇
建議61:將模板的聲明和定義放置在同一個頭文件里
建議62:用模板替代參數(shù)化的宏函數(shù)
建議63:區(qū)分函數(shù)模板與模板函數(shù)、類模板與模板類
建議64:區(qū)分繼承與模板
第6章 讓神秘的異常處理不再神秘
建議65:使用exception來處理錯誤
建議66:傳值throw異常,傳引用catch異常
建議67:用"throw;"來重新拋出異常
建議68:了解異常捕獲與函數(shù)參數(shù)傳遞之間的差異
建議69:熟悉異常處理的代價
建議70:盡量保證異常安全
第7章 用好STL這個大輪子
建議71:盡量熟悉C++標(biāo)準(zhǔn)庫
建議72:熟悉STL中的有關(guān)術(shù)語
建議73:刪除指針的容器時避免資源泄漏
建議74:選擇合適的STL容器
建議75:不要在STL容器中存儲auto_ptr對象
建議76:熟悉刪除STL容器中元素的慣用法
建議77:小心迭代器的失效
建議78:盡量使用vector和string代替動態(tài)分配數(shù)組
建議79:掌握vector和string與C語言API的通信方式
建議80:多用算法調(diào)用,少用手寫循環(huán)
第二部分 編碼習(xí)慣和規(guī)范篇
第8章 讓程序正確執(zhí)行
建議81:避免無意中的內(nèi)部數(shù)據(jù)裸露
建議82:積極使用const為函數(shù)保駕護(hù)航
建議83:不要返回局部變量的引用
建議84:切忌過度使用傳引用代替?zhèn)鲗ο?br /> 建議85:了解指針參數(shù)傳遞內(nèi)存中的玄機
建議86:不要將函數(shù)參數(shù)作為工作變量
建議87:躲過0值比較的層層陷阱
建議88:不要用reinterpret_cast去迷惑編譯器
建議89:避免對動態(tài)對象指針使用static_cast
建議90:盡量少應(yīng)用多態(tài)性數(shù)組
建議91:不要強制去除變量的const屬性
第9章 提高代碼的可讀性
建議92:盡量使代碼版面整潔優(yōu)雅
建議93:給函數(shù)和變量起一個"能說話"的名字
建議94:合理地添加注釋
建議95:為源代碼設(shè)置一定的目錄結(jié)構(gòu)
建議96:用有意義的標(biāo)識代替Magic Numbers
建議97:避免使用"聰明的技巧"
建議98:運算符重載時堅持其通用的含義
建議99:避免嵌套過深與函數(shù)過長
建議100:養(yǎng)成好習(xí)慣,從現(xiàn)在做起
第10章 讓代碼運行得再快些
建議101:用移位實現(xiàn)乘除法運算
建議102:優(yōu)化循環(huán),提高效率
建議103:改造switch語句
建議104:精簡函數(shù)參數(shù)
建議105:謹(jǐn)慎使用內(nèi)嵌匯編
建議106:努力減少內(nèi)存碎片
建議107:正確地使用內(nèi)聯(lián)函數(shù)
建議108:用初始化取代賦值
建議109:盡可能地減少臨時對象
建議110:最后再去優(yōu)化代碼
第11章 零碎但重要的其他建議
建議111:采用相對路徑包含頭文件
建議112:讓條件編譯為開發(fā)出力
建議113:使用.inl文件讓代碼整潔可讀
建議114:使用斷言來發(fā)現(xiàn)軟件問題
建議115:優(yōu)先選擇編譯和鏈接錯誤
建議116:不放過任何一條編譯器警告
建議117:盡量減少文件之間的編譯依賴
建議118:不要在頭文件中使用using
建議119:劃分全局名空間避免名污染
第三部分 程序架構(gòu)和思想篇
第12章 面向?qū)ο蟮念愒O(shè)計
建議120:堅持"以行為為中心"的類設(shè)計
建議121:用心做好類設(shè)計
建議122:以指針代替嵌入對象或引用
建議123:努力將接口最小化且功能完善
建議124:讓類的數(shù)據(jù)隱藏起來
建議125:不要讓成員函數(shù)破壞類的封裝性
建議126:理解"virtual + 訪問限定符"的深層含義
建議127:謹(jǐn)慎恰當(dāng)?shù)厥褂糜言獧C制
建議128:控制對象的創(chuàng)建方式
建議129:控制實例化對象的個數(shù)
建議130:區(qū)分繼承與組合
建議131:不要將對象的繼承關(guān)系擴展至對象容器
建議132:杜絕不良繼承
建議133:將RAII作為一種習(xí)慣
建議134:學(xué)習(xí)使用設(shè)計模式
建議135:在接口繼承和實現(xiàn)繼承中做謹(jǐn)慎選擇
建議136:遵循類設(shè)計的五項基本原則
第13章 返璞歸真的程序設(shè)計
建議137:用表驅(qū)動取代冗長的邏輯選擇
建議138:為應(yīng)用設(shè)定特性集
建議139:編碼之前需三思
建議140:重構(gòu)代碼
建議141:透過表面的語法挖掘背后的語義
建議142:在未來時態(tài)下開發(fā)C++程序
建議143:根據(jù)你的目的決定造不造輪子
建議144:謹(jǐn)慎在OO與GP之間選擇
建議145:讓內(nèi)存管理理念與時俱進(jìn)
建議146:從大師的代碼中學(xué)習(xí)編程思想與技藝
建議147:遵循自然而然的C++風(fēng)格
建議148:了解C++語言的設(shè)計目標(biāo)與原則
建議149:明確選擇C++的理由

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號