Harriman House | Business Books | Politicos | Financial Conferences | Glossary | Investor Education | Derivatives | Financial Gurus | Spread Betting Central |

Home |  Search |  shopping basket Shopping basket
Tel: +44 (0)1730 233870    Email: bookshop@holbornbooks.co.uk  
Categories

Effective C++ by Scott Meyers
  • Effective C++

  • 55 Specific Ways to Improve Your Programs and Designs (Professional Computing S.)

  • by Scott Meyers
In stock, usually dispatched within 24 hours

    • Product code: 23591
    • ISBN: 0321334876, ISBN13: 9780321334879, 256 pages, paperback
      Published by Addison Wesley, 2005
    Rate this book...

    Rating: 0.0/5 (0 votes cast)

    Description of Effective C++

    The first edition of Effective C++ sold nearly 100,000 copies and was translated into four languages. It's easy to understand why. Scott Meyers' practical approach to C++ described the rules of thumb employed by the experts

    Each of this book's 50 guidelines summarizes a way to write better C++, and the accompanying discussions are backed by specific examples. For this new edition, Meyers reworked every guideline in the book. The result is exceptional adherence to C++'s Draft International Standard, current compiler technology, and the latest insights into the use of C++ for real-world applications. (This text refers to the Paperback edition.)

    Contents of Effective C++

    Preface
    Acknowledgments
    Introduction

    1. Accustoming Yourself to C++
    Item 1: View C++ as a federation of languages
    Item 2: Prefer consts, enums, and inlines to #defines
    Item 3: Use const whenever possible
    Item 4: Make sure that objects are initialized before they're used

    2. Constructors, Destructors, and Assignment Operators
    Item 5: Know what functions C++ silently writes and calls
    Item 6: Explicitly disallow the use of compiler-generated functions you do not want
    Item 7: Declare destructors virtual in polymorphic base classes
    Item 8: Prevent exceptions from leaving destructors
    Item 9: Never call virtual functions during construction or destruction
    Item 10: Have assignment operators return a reference to *this
    Item 11: Handle assignment to self in operator=
    Item 12: Copy all parts of an object

    3. Resource Management
    Item 13: Use objects to manage resources
    Item 14: Think carefully about copying behavior in resource-managing classes
    Item 15: Provide access to raw resources in resource-managing classes
    Item 16: Use the same form in corresponding uses of new and delete
    Item 17: Store newed objects in smart pointers in standalone statements

    4. Designs and Declarations
    Item 18: Make interfaces easy to use correctly and hard to use incorrectly
    Item 19: Treat class design as type design
    Item 20: Prefer pass-by-reference-to-const to pass-by-value
    Item 21: Don't try to return a reference when you must return an object
    Item 22: Declare data members private
    Item 23: Prefer non-member non-friend functions to member functions
    Item 24: Declare non-member functions when type conversions should apply to all parameters
    Item 25: Consider support for a non-throwing swap

    5. Implementations
    Item 26: Postpone variable definitions as long as possible
    Item 27: Minimize casting
    Item 28: Avoid returning "handles" to object internals
    Item 29: Strive for exception-safe code
    Item 30: Understand the ins and outs of inlining
    Item 31: Minimize compilation dependencies between files

    6. Inheritance and Object-Oriented Design
    Item 32: Make sure public inheritance models "is-a"
    Item 33: Avoid hiding inherited names
    Item 34: Differentiate between inheritance of interface and inheritance of implementation
    Item 35: Consider alternatives to virtual functions
    Item 36: Never redefine an inherited non-virtual function
    Item 37: Never redefine a function's inherited default parameter value
    Item 38: Model "has-a" or "is-implemented-in-terms-of" through composition
    Item 39: Use private inheritance judiciously
    Item 40: Use multiple inheritance judiciously

    7. Templates and Generic Programming
    Item 41: Understand implicit interfaces and compile-time polymorphism
    Item 42: Understand the two meanings of typename
    Item 43: Know how to access names in templatized base classes
    Item 44: Factor parameter-independent code out of templates
    Item 45: Use member function templates to accept "all compatible types."
    Item 46: Define non-member functions inside templates when type conversions are desired
    Item 47: Use traits classes for information about types
    Item 48: Be aware of template metaprogramming

    8. Customizing new and delete
    Item 49: Understand the behavior of the new-handler
    Item 50: Understand when it makes sense to replace new and delete
    Item 51: Adhere to convention when writing new and delete
    Item 52: Write placement delete if you write placement new

    9. Miscellany
    Item 53: Pay attention to compiler warnings
    Item 54: Familiarize yourself with the standard library, including TR1
    Item 55: Familiarize yourself with Boost

    Appendix A: Beyond Effective C++
    Appendix B: Item Mappings Between Second and Third Editions

    Index

    About Scott Meyers

    Scott Meyers is one of the world's foremost authorities on C++, providing training and consulting services to clients worldwide. He is the author of the best-selling Effective C++ series of books (Effective C++, More Effective C++, and Effective STL) and of the innovative Effective C++ CD.

    He is consulting editor for Addison Wesley's Effective Software Development Series and serves on the Advisory Board for The C++ Source (http://www.artima.com/cppsource). He holds a Ph.D. in Computer Science from Brown University. His web site is http://www.aristeia.com.

    See other products on
    Bulk buying
    If you need bulk copies of Effective C++, or are interested in opening a corporate account, please contact us.