Skip to content

Effective C++ 55 Specific Ways to Improve Your Programs and Designs

Best in textbook rentals since 2012!

ISBN-10: 0321334876

ISBN-13: 9780321334879

Edition: 3rd 2005 (Revised)

Authors: Scott Meyers

List price: $54.99
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!

Rental notice: supplementary materials (access codes, CDs, etc.) are not guaranteed with rental orders.

what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

Effective C++ 3/e is a complete update of Effective C++ and Effective C++ 2/e .Like its predecessors, 3/e has 55 guidelines which contain better, moreeffective ways to write code, backed by specific examples. The second editionpublished in 1997, and was basically a face-lift of the first edition, keeping mostof the same elements, and seven years later is still selling well.Now, Meyers has dramatically rejuvenated the material, including more than30% brand-new material. Meyers began this edition by asking himself, "Whatare the 55 most important pieces of advice for practicing C++ programmers in2005?" He also asked thousands of past users of his books this same question.This resulted in a…    
Customers also bought

Book details

List price: $54.99
Edition: 3rd
Copyright year: 2005
Publisher: Addison Wesley Professional
Publication date: 5/12/2005
Binding: Paperback
Pages: 320
Size: 7.35" wide x 9.25" long x 1.00" tall
Weight: 1.606
Language: English

For more than 20 years, Scott Meyers' Effective C++ books (Effective C++, More Effective C++, and Effective STL) have set the bar for C++ programming guidance. His clear, engaging explanations of complex technical material have earned him a worldwide following, and they keep him in demand as a trainer, consultant, and conference presenter. Winner of the 2009 Dr. Dobb's Excellence in Programming Award, he has a Ph.D. in Computer Science from Brown University. His web site is aristeia.com.

Preface
Acknowledgments
Introduction
Accustoming Yourself to C++
View C++ as a federation of languages
Prefer consts, enums, and inlines to #defines
Use const whenever possible
Make sure that objects are initialized before theyre used
Constructors, Destructors, and Assignment Operators
Know what functions C++ silently writes and calls
Explicitly disallow the use of compiler-generated functions you do not want
Declare destructors virtual in polymorphic base classes
Prevent exceptions from leaving destructors
Never call virtual functions during construction or destruction
Have assignment operators return a reference to *this
Handle assignment to self in operator=
Copy all parts of an object
Resource Management
Use objects to manage resources
Think carefully about copying behavior in resource-managing classes
Provide access to raw resources in resource-managing classes
Use the same form in corresponding uses of new and delete
Store newed objects in smart pointers in standalone statements
Designs and Declarations
Make interfaces easy to use correctly and hard to use incorrectly
Treat class design as type design
Prefer pass-by-reference-to-const to pass-by-value
Dont try to return a reference when you must return an object
Declare data members private
Prefer non-member non-friend functions to member functions
Declare non-member functions when type conversions should apply to all parameters
Consider support for a non-throwing swap
Implementations
Postpone variable definitions as long as possible
Minimize casting
Avoid returning handles to object internals
Strive for exception-safe code
Understand the ins and outs of inlining
Minimize compilation dependencies between files
Inheritance and Object-Oriented Design 149Item
Make sure public inheritance models is-a
Avoid hiding inherited names
Differentiate between inheritance of interface and inheritance of implementation
Consider alternatives to virtual functions
Never redefine an inherited non-virtual function
Never redefine a functions inherited default parameter value
Model has-a or is-implemented-in-terms-of through composition
Use private inheritance judiciously
Use multiple inheritance judiciously
Templates and Generic Programming 199Item
Understand implicit interfaces and compile-time polymorphism
Understand the two meanings of typename
Know how to access names in templatized base classes
Factor parameter-independent code out of templates
Use member function templates to accept all compatible types
Define non-member functions inside templates when type conversions are desired
Use traits classes for information about types
Be aware of template metaprogramming
Customizing new and delete 239Item
Understand the behavior of the new-handler
Understand when it makes sense to replace new and delete
Adhere to convention when writing new and delete
Write placement delete if you write placement new
Misc