More Effective C++摘錄

 

基礎議題

條款1:仔細區別pointers和references

 

條款2:最好使用C++轉型操作符

 

條款3:絕對不要以多態(polymorphically)方式處理數組

 

條款4:非必要不提供default constructor

 

操作符

條款5:對定製的【型別轉換函數】操持警覺

 

條款6:區別increment/decrement操作符的前置和後置形式

 

條款7:千萬不要重載&&,||和,操作符

 

條款8:瞭解各種不同意義的new和delete

 

異常

條款9:利用destructors避免泄漏資源

 

條款10:在constructors內阻止資源泄漏

 

條款11:禁止異常流出destructors之外

 

條款12:瞭解【擲出一個exception】與【傳遞一個參數】或【調用一個虛函數】之間的差異

 

條款13:以by reference方式捕捉exceptions

 

條款14:明智運用 exception specifications

 

條款15:瞭解異常處理的成本

 

效率

條款16:謹記80-20法則

 

條款17:考慮使用lazy evaluation(緩式評估)

 

條款18:分期攤還預期的計算成本

 

條款19:瞭解臨時對象的來源

 

條款20:協助完成【返回值優化(RVO)】

 

條款21:利用多載技術(overload)避免隱式型別轉換

 

條款22:考慮以操作符複合形式(op=)取代其獨身形式(op)

 

條款23:考慮使用其它程序庫

 

條款24:瞭解virtual functions、multiple inheritance、virtual base classes、runtime type identification的成本

 

技術

條款25:將constructor和non-member functions虛化

 

條款26:限制某個class所能產生的對象數量

 

條款27:要求(或禁止)對象產生於heap之中

 

條款28:Smart Pointers(智能指針)

 

條款29:Reference counting(引用計數)

 

條款30:Proxy classes(替身類、代理類)

 

條款31:讓函數根據一個以上的對象型別來決定如何虛化

 

雜項討論

條款32:在未來時態下發展程序

 

條款33:將非尾端類設計爲抽象類

 

條款34:如何在同一個程序中結合C++和C

 

條款35:讓自己習慣於標準C++語言

發佈了18 篇原創文章 · 獲贊 81 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章