《Effective C++》簡明筆記-上在學(xué)習(xí)算法導(dǎo)論的過程中,我深深地震撼于自己筆下C++代碼的丑陋。于是我決定捧 起這本《Effective C++》。本來打算看完這本書,寫一篇完整的筆記博文,但是剛剛看到一半,我已經(jīng)躍躍欲試地想動手改善我的代碼了。所以,我將寫完的這部分筆記整理成單獨 的一篇博文。 1. 視C++為一個語言聯(lián)盟。
2. 使用 const,enum,inline 代替#define。3. 盡可能使用 const
4. 保證使用對象前進行初始化
5. 了解C++默默做的事
6. 如果不想使用編譯器自動生成函數(shù),就該明確拒絕
7. 為多態(tài)基類聲明virtual析構(gòu)函數(shù)
8. 不讓異常逃離析構(gòu)函數(shù)
9. 不在構(gòu)造函數(shù)或析構(gòu)函數(shù)中調(diào)用virtual函數(shù)
10. 令 operator= 返回一個對 this 的引用
11. 在 operator= 中處理自我賦值
12. 復(fù)制對象時不要忘了對象的每一個部分
13. 以對象管理資源
14. 在資源管理器中小心 copying 行為
15. 在資源管理器中提供對原始資源的訪問
16. 成對使用 new 與 delete 時采取相同的形式
17. 以獨立語句將 newed 對象置入智能指針中
18. 讓接口易于使用,難于誤用
19. 設(shè)計 class 猶如 設(shè)計 type20. 用 pass-by-reference-const 替換 pass-by-value
21. 必須返回對象時,不要試圖返回 reference
22. 將成員變量聲明為 private23. 以 non-member 和 non-friend 函數(shù)替換 non-member 函數(shù)
24. 如果函數(shù)的所有參數(shù)都需要類型轉(zhuǎn)換,采用 non-member 函數(shù)
25. 考慮寫一個不拋出異常的 swap 函數(shù)
26. 盡量延后變量定義式的時間
27. 盡量少做轉(zhuǎn)型動作
28. 避免返回 handles 指向?qū)ο髢?nèi)部部分
29. 為“異常安全”而作的努力是值得的
|
|