More Effective C++ : 35 New Ways to Improve Your Programs and Designs (Addison-wesley Professional Computing Series)

  • ポイントキャンペーン

More Effective C++ : 35 New Ways to Improve Your Programs and Designs (Addison-wesley Professional Computing Series)

  • ただいまウェブストアではご注文を受け付けておりません。 ⇒古書を探す
  • 製本 Paperback:紙装版/ペーパーバック版/ページ数 318 p.
  • 言語 ENG
  • 商品コード 9780201633719
  • DDC分類 005.133

Full Description


More than 150,000 copies in print!Praise for Scott Meyers' first book, Effective C++:"I heartily recommend Effective C++ to anyone who aspires to mastery of C++ at the intermediate level or above."- The C/C++ User's Journal From the author of the indispensable Effective C++, here are 35 new ways to improve your programs and designs. Drawing on years of experience, Meyers explains how to write software that is more effective: more efficient, more robust, more consistent, more portable, and more reusable. In short, how to write C++ software that's just plain better.More Effective C++ includes:Proven methods for improving program efficiency, including incisive examinations of the time/space costs of C++ language featuresComprehensive descriptions of advanced techniques used by C++ experts, including placement new, virtual constructors, smart pointers, reference counting, proxy classes, and double-dispatchingExamples of the profound impact of exception handling on the structure and behavior of C++ classes and functionsPractical treatments of new language features, including bool, mutable, explicit, namespaces, member templates, the Standard Template Library, and more. If your compilers don't yet support these features, Meyers shows you how to get the job done without them.More Effective C++ is filled with pragmatic, down-to-earth advice you'll use every day. Like Effective C++ before it, More Effective C++ is essential reading for anyone working with C++.

Contents

Acknowledgments xiIntroduction 1Basics 9Item 1: Distinguish between pointers and references. 9 Item 2: Prefer C++-style casts. 12Item 3: Never treat arrays polymorphically. 16 Item 4: Avoid gratuitous default constructors. 19Operators 24Item 5: Be wary of user-defined conversion functions. 24Item 6: Distinguish between prefix and postfix forms of increment and decrement operators. 31Item 7: Never overload &&, ||, or ,. 35 Item 8: Understand the different meanings of new and delete. 38Exceptions 44Item 9: Use destructors to prevent resource leaks. 45Item 10: Prevent resource leaks in constructors. 50Item 11: Prevent exceptions from leaving destructors. 58Item 12: Understand how throwing an exception differs from passing a parameter or calling a virtual function. 61Item 13: Catch exceptions by reference. 68Item 14: Use exception specifications judiciously. 72Item 15: Understand the costs of exception handling. 78Efficiency 81Item 16: Remember the 80-20 rule. 82Item 17: Consider using lazy evaluation. 85Item 18: Amortize the cost of expected computations. 93Item 19: Understand the origin of temporary objects. 98Item 20: Facilitate the return value optimization. 101Item 21: Overload to avoid implicit type conversions. 105Item 22: Consider using op= instead of stand-alone op. 107 Item 23: Consider alternative libraries. 110Item 24: Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI. 113Techniques 123Item 25: Virtualizing constructors and non-member functions. 123Item 26: Limiting the number of objects of a class. 130Item 27: Requiring or prohibiting heap-based objects. 145Item 28: Smart pointers. 159Item 29: Reference counting. 183Item 30: Proxy classes. 213 Item 31: Making functions virtual with respect to more than one object. 228Miscellany 252Item 32: Program in the future tense. 252Item 33: Make non-leaf classes abstract. 258Item 34: Understand how to combine C++ and C in the same program. 270Item 35: Familiarize yourself with the language standard. 277Recommended Reading 285An auto_ptr Implementation 291General Index 295Index of Example Classes, Functions, and Templates 313