More Effective C++ 國際中文版(最新修訂本) (More Effective C++: 35 New Ways to Improve Your Programs and Designs)

Scott Meyers 著、侯捷 譯

  • 出版商: 培生
  • 出版日期: 2004-06-29
  • 定價: $520
  • 售價: 8.5$442
  • 貴賓價: 8.0$416
  • 語言: 繁體中文
  • 頁數: 317
  • ISBN: 9867491580
  • ISBN-13: 9789867491589
  • 相關分類: C++ 程式語言

已絕版

買這商品的人也買了...

商品描述

本書特色

More Effective C++一書充滿了實用性高且擲地鏗鏘的忠告,為你每天可能面對的問題帶來幫助。和其前一本兄弟書籍Effective C++一樣,More Effective C++對每一位以C++為開發工具的程式員而言,都是必備讀物。「More Effective C++國際中文版」的重點包括:
*經過驗證的一些用來改善程式效率的方法,包括尖銳而犀利地檢驗C++語言特性所帶來的時間和空間上的成本。
*廣泛描述C++專家所使用的高階技術,包括placement new、virtual constructors、smart pointers、reference counting、proxy classes、double-dispatching。
*以實例說明exception handling帶給C++ classes和functions意義深長的衝擊 ? 包括其結構和行為。
*務實面對新的語言特性,包括bool、mutable、explicit、namespaces、member templates、C++標準函式庫、以及更多東西。如果你的編譯器尚未支援這些特性,Meyers告訴你如何在沒有它們的情況下完成該完成的事情。

本書目錄

導讀(Introduction)
基礎議題(Basics)
條款1:仔細區別 pointers 和 references
條款2:最好使用 C++ 轉型運算子
條款3:絕對不要以 polymorphically(多型)方式來處理陣列
條款4:非必要不提供 default constructor
運算子(Operators)
條款5:對自定的型別轉換函式保持警覺
條款6:區別 increment/decrement 運算子的前序(prefix)和後序(postfix)型式
條款7:千萬不要多載化 &&, ||, 和 , 運算子
條款8:瞭解各種不同意義的 new 和 delete
異常情況(Exceptions)
條款9:利用 destructors 避免遺失資源
條款10:在 constructors 內阻止資源的遺失(resource leaks)
條款11:禁止異常訊息(exceptions)流出 destructors 之外
條款12:瞭解「丟出一個 exception」與「傳遞一個參數」或「呼叫一個虛擬函式」之間的差異
條款13:以 by reference 方式捕捉 exceptions
條款14:明智運用 exception specifications
條款15:瞭解異常處理(exception handling)的成本
效率(Efficiency)
條款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 所需的成本
技術(Techniques,又稱 Idioms 或 Pattern)
條款25:將 constructor 和 non-member functions 虛擬化
條款26:限制某個 class 所能產生的物件數量
條款27:要求(或禁止)物件產生於 heap 之中
條款28:Smart Pointers(精靈指標)
條款29:Reference counting(參用計數)
條款30:Proxy classes(替身類別、代理人類別)
條款31:讓函式根據一個以上的物件型別來決定如何虛擬化雜項討論(Miscellany)
條款32:在未來時態下發展程式
條款33:將非尾端類別(non-leaf classes)設計為抽象類別(abstract classes)
條款34:如何在同一個程式中結合 C++ 和 C
條款35:讓自己習慣使用標準的 C++ 語言