第1篇 C++基本語言特徵
第1章 快速入門
實用經驗1 C++程序由哪些部分構成
實用經驗2 既有麵嚮過程,為何還要麵嚮對象
實用經驗3 掌握在C++中如何使用C
實用經驗4 C++比C加瞭什麼
第2章 變量和類型
實用經驗5 計算機是如何存儲變量的
實用經驗6 確保每個對象在使用前已被初始化
實用經驗7 局部變量和全局變量的差彆
實用經驗8 掌握變量定義的位置與時機
實用經驗9 引用難道隻是彆人的替身
實用經驗10 枚舉和一組預處理的#define有何不同
實用經驗11 為何struct x1{struct x1 stX};無法通過編譯
實用經驗12 實現可變數組struct{int namelen; char namestr[1];};
實用經驗13 typedef使用的陷阱
實用經驗14 優化結構體中元素的布局
實用經驗15 既有結構,為何引入聯閤
實用經驗16 提防隱式轉換帶來的麻煩
實用經驗17 深刻理解void和void*
實用經驗18 如何判定變量是否相等
第3章 關鍵字
實用經驗19 盡可能多地使用const
實用經驗20 volatile和mutable用在何處
實用經驗21 盡量用new/delete替代malloc/free
實用經驗22 使用new/delete時要采用相同的形式
實用經驗23 sizeof和對象的大小
實用經驗24 謹慎使用static
第4章 數組和指針
實用經驗25 理解指針的本質
實用經驗26 論數組和指針的等價性
實用經驗27 再論數組和指針的差異性
實用經驗28 充滿疑惑的數組指針和指針數組
實用經驗29 禁止以多態的形式處理數組
實用經驗30 防微杜漸,拒絕野指針
實用經驗31 臭名昭著的空指針到底是什麼
實用經驗32 多維數組和指針
實用經驗33 引用和指針的差異
第5章 錶達式和語句
實用經驗34 運算符引發的混亂
實用經驗35 盡量使用C++轉換操作符
實用經驗36 錶達式求值順序不要想當然
實用經驗37 switch-case的陷阱
實用經驗38 a || b和a&&b的陷阱
實用經驗39 “懸掛”else引起的問題
實用經驗40 標示語句結束的分號的思考
實用經驗41 goto真的一無是處嗎
實用經驗42 條件操作符和逗號操作符
實用經驗43 同魔鬼數字說再見
實用經驗44 關於循環語句的討論
第6章 函數
實用經驗45 禁止函數返迴局部變量的引用
實用經驗46 函數傳值、傳指針及傳引用的效率分析
實用經驗47 內聯函數會像宏一樣替換嗎
實用經驗48 函數重載需考慮什麼
實用經驗49 不要讓main返迴void
實用經驗50 盡量拒絕使用變參函數
實用經驗51 如何降低函數的圈復雜度
第7章 字符和字符串
實用經驗52 關於字符編碼的討論
實用經驗53 請牢記字符串結束標誌為' '
實用經驗54 請務必小心使用memcpy()係列函數
實用經驗55 正確地使用字符串處理函數
第8章 預處理
實用經驗56 使用#define定義字麵值和僞函數
實用經驗57 #define的使用陷阱
實用經驗58 防止重復包含頭文件
實用經驗59 assert的副作用
實用經驗60 關於#和##的討論
第2篇 類和數據抽象
第9章 類
實用經驗61 絕不讓構造函數為虛函數
實用經驗62 避免在構造/析構函數中調用虛函數
實用經驗63 不使用編譯器自動生成的函數,就明確拒絕
實用經驗64 struct和class的關係
實用經驗65 class對象大小與什麼有關係
實用經驗66 將成員變量聲明為private
實用經驗67 關於對象復製的思考
實用經驗68 首選初始化列錶實現類成員初始化
實用經驗69 理解常量成員函數
第10章 重載操作符
實用經驗70 由重載&&、||和,操作符想到的
實用經驗71 區彆++/--操作符前置和後置差異
實用經驗72 重載operator[]的注意事項
實用經驗73 重載operator=的陷阱
實用經驗74 重載操作符,類成員函數還是友元函數
實用經驗75 有些運算符重載應該成對實現
第3篇 C++麵嚮對象機製
第11章 繼承和多態
實用經驗76 多態基類的析構函數應為虛函數
實用經驗77 明晰public、protected、private 3 種繼承差彆
實用經驗78 慎用多繼承機製
實用經驗79 時刻提防對象切片
實用經驗80 明晰派生類構造/析構運行原理
實用經驗81 謹慎使用private繼承
實用經驗82 區分overloading、overriding、 hiding的差異
實用經驗83 確保public繼承是“is-a”關係
實用經驗84 區分接口繼承和實現繼承
實用經驗85 不要重新定義繼承而來的非虛函數
實用經驗86 絕對不要重新定義繼承而來的默認參數
實用經驗87 切忌繼承過度濫用
實用經驗88 虛函數重載的陷阱
實用經驗89 關於虛賦值的問題
第12章 模闆和泛型
實用經驗90 將模闆的聲明和定義放到一個文件中
實用經驗91 區分繼承、模闆及組閤
實用經驗92 區分函數模闆與模闆函數、類模闆和模闆類
第4篇 C++高級特性
第13章 高級特性
實用經驗93 閤理地使用斷言(ASSERT)
實用經驗94 虛函數的實現原理
實用經驗95 檢測和定位內存泄漏的技巧
實用經驗96 可執行文件*.exe(*.dll)剖析
實用經驗97 C++為何引入命名空間
實用經驗98 避免使用“聰明的技巧”
實用經驗99 試著在代碼中使用設計模式
實用經驗100 改善C++程序運行效率的措施
實用經驗101 提高(改善)代碼可讀性的措施
· · · · · · (
收起)