世界頂級(jí)C++大師Scott Meyers成名之作的第三版的確當(dāng)?shù)闷疬@樣的評(píng)價(jià)。當(dāng)您讀過《Effective C++中文版(第3版改善程序與設(shè)計(jì)的55個(gè)具體做法)》后,就獲得了迅速提升自己C++功力的一個(gè)契機(jī)。
在國際上,本書所引起的反響,波及整個(gè)計(jì)算機(jī)技術(shù)出版領(lǐng)域,余音至今未絕。幾乎在所有C++書籍的推薦名單上,本書都會(huì)位于前三名。作者高超的技術(shù)把握力、獨(dú)特的視角﹑詼諧輕松的寫作風(fēng)格﹑獨(dú)具匠心的內(nèi)容組織,都受到極大的推崇和仿效。這種奇特的現(xiàn)象,只能解釋為人們對(duì)這本書衷心的贊美和推崇。
《Effective C++中文版(第3版改善程序與設(shè)計(jì)的55個(gè)具體做法)》不是讀完一遍就可以束之高閣的快餐讀物,也不是用以解決手邊問題的參考手冊(cè),而是需要您去反復(fù)閱讀體會(huì)的,C++是真正程序員的語言,背后有著精深的思想與無與倫比的表達(dá)能力,這使得它具有類似宗教般的魅力。希望這本書能夠幫助您跨越C++的重重險(xiǎn)阻,領(lǐng)略高處才有的壯美風(fēng)光,做一個(gè)成功而快樂的C++程序員。
Effective C++中文版(第3版改善程序與設(shè)計(jì)的55個(gè)具體做法)》一共組織55個(gè)準(zhǔn)則,每一條準(zhǔn)則描述一個(gè)編寫出更好的C++的方式。每一個(gè)條款的背后都有具體范例支撐。第三版有一半以上的篇幅是嶄新內(nèi)容,包括討論資源管理和模板(templates)運(yùn)用的兩個(gè)新章。為反映出現(xiàn)代設(shè)計(jì)考慮,對(duì)第二版論題做了廣泛的修訂,包括異常(exceptions)、設(shè)計(jì)模式(design patterns)和多線程(multithreading)。
有人說C++程序員可以分成兩類,讀過Effective C++的和沒讀過的。
目錄:
譯序
中英簡繁術(shù)語對(duì)照
目錄
序言
致謝
導(dǎo)讀
1.讓自己習(xí)慣C++
條款01:視C++為一個(gè)語言聯(lián)邦
條款02:盡量以const,enum,inline替換#define
條款03:盡可能使用const
條款04:確定對(duì)象被使用前已先被初始化
2.構(gòu)造/析構(gòu)/賦值運(yùn)算
條款05:了解C++默默編寫并調(diào)用哪些函數(shù)
條款06:若不想使用編譯器自動(dòng)成生的函數(shù),就該明確拒絕
條款07:為多態(tài)基類聲明Virtual析構(gòu)函數(shù)
條款08:別讓異常逃離析構(gòu)函數(shù)
條款09:絕不在構(gòu)造和析構(gòu)過程中調(diào)用Virtual函數(shù)
條款10:令Operator=返回一個(gè)referenceto this
條款11:在Operator=中處理“自我賦值”
條款12:復(fù)制對(duì)象時(shí)勿忘其每一個(gè)成分
3.資源管理
條款13:以對(duì)象管理資源
條款14:在資源管理類中小心Coping行為
條款15:在資源管理類中提供對(duì)原始資源的訪問
條款16:成對(duì)使用new和delete對(duì)象置入智能指針
條款17:以獨(dú)立語句將newed對(duì)象置入智能指針
4.設(shè)計(jì)與聲明
條款18:讓接口容易被正確使用,不易被誤用
條款19:設(shè)計(jì)class猶如設(shè)計(jì)type
條款20:寧以pass-by-reference-to-const替換Pass-by-value
條款21:必須返回對(duì)象時(shí),別妄想返回其reference
條款22: 將成員變量聲明為private
條款23: 寧以non-member、non-friend替換member函數(shù)
條款24:若有所參數(shù)皆需類型轉(zhuǎn)換,請(qǐng)為此采用non-member函數(shù)
條款25:考慮寫出一個(gè)不拋異常的swap函數(shù)
5.實(shí)現(xiàn)
條款26:盡可能延后變量定義式的出現(xiàn)時(shí)間
條款27:盡量少做轉(zhuǎn)型動(dòng)作
條款28:避免返回handles指向?qū)ο髢?nèi)部成分
條款29:為“異常安全”而努力是值得的
條款30:透徹了解inlining的里里外外
條款31:將文件間的編譯依存關(guān)系降至最低
6.繼承與面向?qū)ο笤O(shè)計(jì)
條款32:確定你的public繼承塑模出is-a關(guān)系
條款33:避免遮掩繼承而來的名稱
條款34:區(qū)分接口繼承和實(shí)現(xiàn)繼承
條款35:考虛virtual函數(shù)以外的其他選擇
條款36:絕不重新定義繼承而來的non-virtual函數(shù)
條款37:絕不重新定義繼承而來的缺省參數(shù)值
條款38:通過復(fù)合塑模出has-a或“根據(jù)某物實(shí)現(xiàn)出”
條款39:明智而審慎地使用private繼承
條款40:明智而審慎地使用private繼承
7.模板與泛型編程
8.定制new和delete
9.雜項(xiàng)討論
A 本書之外
B 新舊版條款對(duì)映