Effective C++ 50 Specific Ways to Improve Your Programs and Design

ISBN-10: 0201924889

ISBN-13: 9780201924886

Edition: 2nd 1998

Authors: Scott D. Meyers

List price: $39.95
30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy


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 expertsthe things they almost always do or almost always avoid doingto produce clear, correct, efficient code. 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.
what's this?
Rush Rewards U
Members Receive:
You have reached 400 XP and carrot coins. That is the daily max!
Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
SQL Online content $4.95 $1.99
Add to cart
Study Briefs
MS Excel® 2010 Online content $4.95 $1.99
Add to cart
Study Briefs
MS Word® 2010 Online content $4.95 $1.99
Add to cart
Study Briefs
MS PowerPoint® 2010 Online content $4.95 $1.99
Customers also bought

Book details

List price: $39.95
Edition: 2nd
Copyright year: 1998
Publisher: Addison Wesley Professional
Publication date: 9/2/1997
Binding: Paperback
Pages: 288
Size: 7.75" wide x 9.50" long x 0.50" tall
Weight: 1.100
Language: English

Shifting From C to C++
Prefer const and inline to #define
Prefer iostream to stdio.h
Prefer new and delete to malloc and free
Prefer C++-style comments
Memory Management
Use the same form in corresponding uses of new and delete
Use delete on pointer members in destructors
Be prepared for out-of-memory conditions
Adhere to convention when writing operator new and operator delete
Avoid hiding the "normal" form of new
Write operator delete if you write operator new
Constructors, Destructors, and Assignment Operators
Declare a copy constructor and an assignment operator for classes with dynamically allocated memory
Prefer initialization to assignment in constructors
List members in an initialization list in the order in which they are declared
Make destructors virtual in base classes
Have operator return a reference to *this
Assign to all data members in operator
Check for assignment to self in operator
Classes and Functions: Design and Declaration
Strive for class interfaces that are complete and minimal
Differentiate among member functions, non-member functions, and friend functions
Avoid data members in the public interface
Use const whenever possible
Prefer pass-by-reference to pass-by-value
Don't try to return a reference when you must return an object
Choose carefully between function overloading and parameter defaulting
Avoid overloading on a pointer and a numerical type
Guard against potential ambiguity
Explicitly disallow use of implicitly generated member functions you don't want
Partition the global namespace
Classes and Functions: Implementation
Avoid returning "handles" to internal data
Avoid member functions that return non-const pointers or references to members less accessible than themselves
Never return a reference to a local object or to a dereferenced pointer initialized by new within the function
Postpone variable definitions as long as possible
Use inlining judiciously
Minimize compilation dependencies between files
Inheritance and Object-Oriented Design
Make sure public inheritance models "isa."
Differentiate between inheritance of interface and inheritance of implementation
Never redefine an inherited nonvirtual function
Never redefine an inherited default parameter value
Avoid casts down the inheritance hierarchy
Model "has-a" or "is-implemented-in-terms-of" through layering
Differentiate between inheritance and templates
Use private inheritance judiciously
Use multiple inheritance judiciously
Say what you mean; understand what you're saying
Know what functions C++ silently writes and calls
Prefer compile-time and link-time errors to runtime errors
Ensure that non-local static objects are initialized before they're used
Pay attention to compiler warnings
Familiarize yourself with the standard library
Improve your understanding of C++
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.