文|seraph
條目篇主要是記錄得出的結果,用作以後翻查遵循。以下是本書的翻譯中英術語表:
英文術語
中文譯詞
abstract
抽象的abstraction
抽象性、抽象件
本書的目的是強調那些常常被漠視的c++程式設計方向與觀點。
定義式(definition)的任務是提供編譯器一些宣告式所遺漏的細節。
建構函式要不沒有引數,要不就是每個引數都是預設值。
tr1(「technical report 1」)是乙份規範,描述加入c++標準程式庫的諸多新機能。
所有tr1元件都被置於命名空間tr1內,後者巢狀於命名空間std內。
boost是乙個組織,亦是乙個**,提供可移植、同僚複審、原始碼開放的c++程式庫。
條款 01:視c++為乙個語言聯邦
c++高效程式設計守則狀況而變化,取決於你使用c++的哪一部分。
c++有以下四個次語言:
條款 02:盡量以const、enum、inline替換#define
對於單純常量,最好以const物件或enums替換#define。
對於形似函式的巨集(macros),最好改用inline函式替換#define。
條款 03:盡可能使用const
條款 04:確定物件使用前被初始化條款 05:c++預設編寫並呼叫的函式
條款 06:不想使用預設生成的函式,可以明確拒絕
條款 07:多型基類宣告virtual析構函式
條款 08:別讓異常逃離析構函式
條款 09:不要在構造和析構函式呼叫virtual函式
條款 10:令operator=返回reference to *this
條款 11:在operator=中處理"自我賦值"
條款 12:複製物件的時候勿忘其每個部分條款 13:以物件管理資源
條款 14:在資源管理類中小心copy行為
條款 15:在資源管理類中提供對原始資源的訪問
條款 16:成對的使用new和delete
條款 17:以單獨的語句將newed物件置入shared_ptr條款 18、讓介面容易被正確使用,不易被誤用
條款 19、設計class
條款 20、以pass-by-reference-const替換pass-by-value
條款 21、不要返回臨時物件的引用
條款 22、將成員變數宣告為private
條款 23、寧以non-member、non-friend函式替換member函式
條款 24、若所有引數皆需型別轉換,那麼請採用non-member函式
條款 25、寫乙個不丟擲異常的swap函式條款 26、盡可能延後變數定義得時間
條款 27、盡量避免轉型
條款 28、避免返回乙個指標、引用或者迭代器指向類內的成員
條款 29、異常安全函式
條款 30、inline 函式
條款 31、編譯依存關係降低至最低條款 32、確保public繼承是is-a關係
條款 33、名稱遮掩問題
條款 34、介面繼承與實現繼承
條款 35、考慮virtual函式以外的選擇
條款 36、不要重新定義繼承來的non-virtual函式
條款 37、不要重新定義重寫函式(virtual)的預設引數
條款 38、類與類之間的關係:復合(has a的關係)
條款 39、私有繼承
條款 40、多重繼承條款 41、隱式介面和編譯器多型
條款 42、了解typename
條款 43、呼叫基類模板成員
條款 44、將與template引數無關的**抽離到模板外
條款 45、運用成員函式模板接受所有相容型別
條款 46、需要型別轉換時請為模板定義非成員函式
條款 47、traits程式設計技巧
條款 48、模板元程式設計條款 49、了解new-handler的行為
條款 50、了解new和delete的合理替換時機
條款 51:編寫new和delete時需固守常規
條款 52:寫了placemant new也要寫placement delete條款 53:不要輕忽編譯器的警告
條款 54:讓自己熟悉包括tr1在內的標準程式庫
條款 55:讓自己熟悉boost
《effective C 》讀書筆記
1,c 關鍵字explicit c 中,乙個引數的 建構函式 或者除了第乙個引數外其餘引數都有預設值的多參建構函式 承擔了兩個角色。1 是個 構造器,2 是個預設且隱含的型別轉換操作符 所以,有時候在我們寫下如 aaa 這樣的 且恰好 的型別正好是aaa單引數構造器的引數型別,這時候 編譯器就自動呼...
Effective C 讀書筆記
一 讓自己習慣c 1 條款01 視c 為聯邦語言 c 的組成可分為四部分 1.c c 仍然以c語言為基礎。區塊 語句 預處理 內建資料型別 陣列 指標等都來自c。2.object oriented c c with classes所訴說的 classes 包括構造和析構 封裝 繼承 多型 virtu...
讀書筆記 Effective C
部分條款過於深奧,部分條款已了然於心,僅記錄當下所識所學 對於常量巨集定義,最好用const代替 define 對於函式巨集定義,最好用inline代替 define include ifdef ifndef仍被需要 內建物件記得手動初始化 使用成員初始列替換賦值操作 以local static替換...