Effective C++: 50 Specific Ways to Improve Your Programs and Design / Edition 2

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Paperback)
  • All (47) from $1.99   
  • New (4) from $10.83   
  • Used (43) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$10.83
Seller since 2014

Feedback rating:

(6)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
PAPERBACK New 0201924889 New Unread Book, may have some minor shelf wear. Fast Shipping, Excellent Customer Service, Satisfaction Guaranteed.

Ships from: Plantation, FL

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$11.52
Seller since 2014

Feedback rating:

(480)

Condition: New
1997 Paperback New

Ships from: san francisco, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$60.00
Seller since 2014

Feedback rating:

(178)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$60.00
Seller since 2014

Feedback rating:

(178)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

From the Author

Both my books (and more) in one revolutionary package. As the author of Effective C++ and More Effective C++, I've had access to electronic versions of both books since, well, since I wrote them. I've wanted to give you on-line access to them for years, but it wasn't really practical until HTML and JavaScript, etc., emerged as electronic publishing standards. On this CD, I've exploited those standards like they've never been exploited before.

The CD includes capabilities that are, as far as I know, unprecedented. These include (1) Dynamic user control over the size of images, navigation bars, and HTML files. You configure things *your* way. (2) The ability to bookmark and/or link to *any paragraph* on the CD. You can now set a bookmark that takes you *exactly* where you want to go. Among other things, this is useful for linking your coding guidelines to the technical discussions in my books that back you up. (3) The results of full-text searches link to specific *paragraphs* containing hits, not just to specific documents. No more 'double searching', once to find the document, once again to find the correct place in the document. (I hate that.) (4) Links from the CD to the Internet go indirect via an on-line lookup table, so links on the CD remain valid even when Internet URLs change. (I also hate broken links.) Of course, the CD includes features you should be able to take for granted in an electronic publication, e.g., color images and diagrams, lots of links (there are thousands, and I specified every last one of them), the ability to legally copy the material to a hard drive for faster and more convenient access, etc. If you're familiar with my books, you know I have definite opinions and I'm not afraid to voice them. I voiced them repeatedly during the design and implementation of this CD, and it shows. This isn't just an 'Effective C++' CD, it's an *effective* CD. I spent more time and energy on this project than I did in writing *both* editions of Effective C++. I honestly think you'll find the CD to be informative and useful for years to come. If you don't, I know you'll let me hear about it :-)

Scott Meyers (smeyers@aristeia.com), the author, February 4, 1999.


Scott Meyers has done it again, expanding on his indispensable classic Effective C++ with 50 new ways to improve programs and designs to make them more consistent, more efficient, more portable, in short, just plain better.Join Meyers for his in-the-know discussions of advanced C++ techniques likesmart pointers, in-class constant initializations, namespaces, and member templates, or examine your own program efficiency with the help of Meyers' critical analysis of the costs of usingC++. Every guideline in the book has been reworked, supporting C++'s Draft International Standard (current compiler technology). Take another look at standard C++ library (which has changed over a period, as Meyers points out), and find out how string and vector affect the structure of the programs.If your C++ compiler doesn't support new features like bool and theStandard Template Library, Meyers can get you over your design hump bydemonstrating how to get the job done regardless. This pragmatic advicesource is as essential to a C++ library as Meyers' previous book, and isjust as useful for any experienced programmer not content to produce merelyadequate programs.

Read More Show Less

Editorial Reviews

From Barnes & Noble

Fatbrain Review

Scott Meyers has done it again, expanding on his indispensable classic Effective C++ with 50 new ways to improve programs and designs to make them more consistent, more efficient, more portable, in short, just plain better. Join Meyers for his in-the-know discussions of advanced C++ techniques like smart pointers, in-class constant initializations, namespaces, and member templates, or examine your own program efficiency with the help of Meyers' critical analysis of the costs of using C++. Every guideline in the book has been reworked, supporting C++'s Draft International Standard (current compiler technology). Take another look at standard C++ library (which has changed over a period, as Meyers points out), and find out how string and vector affect the structure of the programs. If your C++ compiler doesn't support new features like bool and the Standard Template Library, Meyers can get you over your design hump by demonstrating how to get the job done regardless. This pragmatic advice source is as essential to a C++ library as Meyers' previous book, and is just as useful for any experienced programmer not content to produce merely adequate programs.
Read More Show Less

Product Details

  • ISBN-13: 9780201924886
  • Publisher: Addison-Wesley
  • Publication date: 9/2/1997
  • Series: Professional Computing Series
  • Edition description: Older Edition
  • Edition number: 2
  • Pages: 256
  • Product dimensions: 7.39 (w) x 9.18 (h) x 0.57 (d)

Meet the Author


Scott Meyers is a recognized authority on C++; he provides consulting services to clients worldwide. He is the author of More Effective C++, a former columnist for the C++ Report, and a featured speaker at technical conferences around the globe. He received his Ph.D. in Computer Science from Brown University in 1993.
Read More Show Less

Read an Excerpt

PREFACE:

This book is a direct outgrowth of my experiences teaching C to professional programmers. I've found that most students, after a week of intensive instruction, feel comfortable with the basic constructs of the language, but they tend to be less sanguine about their ability to put the constructs together in an effective manner. Thus began my attempt to formulate short, specific, easy-to-remember guidelines for effective software development in C: a summary of the things experienced C programmers almost always do or almost always avoid doing.

I was originally interested in rules that could be enforced by some kind of lint-like program. To that end, I led research into the development of tools to examine C source code for violations of user-specified conditions. Unfortunately, the research ended before a complete prototype could be developed. Fortunately, several commercial Cchecking products are now available.

Though my initial interest was in programming rules that could be automatically enforced, I soon realized the limitations of that approach. The majority of guidelines used by good C programmers are too difficult to formalize or have too many important exceptions to be blindly enforced by a program. I was thus led to the notion of something less precise than a computer program, but still more focused and to-the-point than a general C textbook. The result you now hold in your hands: a book containing 50 specific suggestions on how to improve your C programs and designs.

In this book, you'll find advice on what you should do, and why, and what you should not do, and why not. Fundamentally, of course, the whys are more importantthan the whats, but it's a lot more convenient to refer to a list of guidelines than to memorize a textbook or two.

Unlike most books on C, my presentation here is not organized around particular language features. That is, I don't talk about constructors in one place, about virtual functions in another, about inheritance in a third, etc. Instead, each discussion in the book is tailored to the guideline it accompanies, and my coverage of the various aspects of a particular language feature may be dispersed throughout the book.

The advantage of this approach is that it better reflects the complexity of the software systems for which C is often chosen, systems in which understanding individual language features is not enough. For example, experienced C developers know that understanding inline functions and understanding virtual destructors does not necessarily mean you understand inline virtual destructors. Such battle-scarred developers recognize that comprehending the interactions between the features in C is of the greatest possible importance in using the language effectively. The organization of this book reflects that fundamental truth.

The disadvantage of this design is that you may have to look in more than one place to find everything I have to say about a particular C construct. To minimize the inconvenience of this approach, I have sprinkled cross-references liberally throughout the text, and a comprehensive index is provided at the end of the book.

In preparing this second edition, my ambition to improve the book has been tempered by fear. Tens of thousands of programmers embraced the first edition of Effective C, and I didn't want to destroy whatever characteristics attracted them to it. However, in the six years since I wrote the book, C has changed, the C library has changed (see Item 49), my understanding of C has changed, and accepted usage of C has changed. That's a lot of change, and it was important to me that the technical material in Effective C be revised to reflect those changes. I'd done what I could by updating individual pages between printings, but books and software are frighteningly similar—there comes a time when localized enhancements fail to suffice, and the only recourse is a system-wide rewrite. This book is the result of that rewrite: Effective C, Version 2.0.

Those familiar with the first edition may be interested to know that every Item in the book has been reworked. I believe the overall structure of the book remains sound, however, so little there has changed. Of the 50 original Items, I retained 48, though I tinkered with the wording of a few Item titles (in addition to revising the accompanying discussions). The retired Items (i.e., those replaced with completely new material) are numbers 32 and 49, though much of the information that used to be in Item 32 somehow found its way into the revamped Item 1. I swapped the order of Items 41 and 42, because that made it easier to present the revised material they contain. Finally, I reversed the direction of my inheritance arrows. They now follow the almost-universal convention of pointing from derived classes to base classes. This is the same convention I followed in my 1996 book, More Effective C, an overview of which you can find on pages 237-238 of this volume.

The set of guidelines in this book is far from exhaustive, but coming up with good rules—ones that are applicable to almost all applications almost all the time—is harder than it looks. Perhaps you know of additional guidelines, of more ways in which to program effectively in C. If so, I would be delighted to hear about them.

On the other hand, you may feel that some of the Items in this book are inappropriate as general advice; that there is a better way to accomplish a task examined in the book; or that one or more of the technical discussions is unclear, incomplete, or misleading. I encourage you to let me know about these things, too.

Donald Knuth has a long history of offering a small reward for people who notify him of errors in his books. The quest for a perfect book is laudable in any case, but in view of the number of bug-ridden C books that have been rushed to market, I feel especially strongly compelled to follow Knuth's example. Therefore, for each error in this book that is reported to me—be it technical, grammatical, typographical, or otherwise—I will, in future printings, gladly add to the acknowledgments the name of the first person to bring that error to my attention.

Send your suggested guidelines, your comments, your criticisms, and—sigh—your bug reports to:

Scott Meyers
c/o Publisher, Corporate and Professional Publishing
Addison Wesley Longman, Inc.
1 Jacob Way
Reading, MA 01867
U. S. A.

Alternatively, you may send electronic mail to ec@awl.com.

I maintain a list of changes to this book since its first printing, including bug-fixes, clarifications, and technical updates. This list is available at the Effective C World Wide Web site, ...

Read More Show Less

Table of Contents

Preface
Acknowledgments
Introduction 1
Shifting from C to C++ 13
Memory Management 22
Constructors, Destructors, and Assignment Operators 49
Classes and Functions: Design and Declaration 77
Classes and Functions: Implementation 123
Inheritance and Object-Oriented Design 153
Miscellany 212
Afterword 237
Index 239
Read More Show Less

Preface

This book is a direct outgrowth of my experiences teaching C++ to professional programmers. I've found that most students, after a week of intensive instruction, feel comfortable with the basic constructs of the language, but they tend to be less sanguine about their ability to put the constructs together in an effective manner. Thus began my attempt to formulate short, specific, easy-to-remember guidelines for effective software development in C++: a summary of the things experienced C++ programmers almost always do or almost always avoid doing.

I was originally interested in rules that could be enforced by some kind of lint-like program. To that end, I led research into the development of tools to examine C++ source code for violations of user-specified conditions. Unfortunately, the research ended before a complete prototype could be developed. Fortunately, several commercial C++-checking products are now available.

Though my initial interest was in programming rules that could be automatically enforced, I soon realized the limitations of that approach. The majority of guidelines used by good C++ programmers are too difficult to formalize or have too many important exceptions to be blindly enforced by a program. I was thus led to the notion of something less precise than a computer program, but still more focused and to-the-point than a general C++ textbook. The result you now hold in your hands: a book containing 50 specific suggestions on how to improve your C++ programs and designs.

In this book, you'll find advice on what you should do, and why, and what you should not do, and why not. Fundamentally, of course, the whys are more important than the whats,but it's a lot more convenient to refer to a list of guidelines than to memorize a textbook or two.

Unlike most books on C++, my presentation here is not organized around particular language features. That is, I don't talk about constructors in one place, about virtual functions in another, about inheritance in a third, etc. Instead, each discussion in the book is tailored to the guideline it accompanies, and my coverage of the various aspects of a particular language feature may be dispersed throughout the book.

The advantage of this approach is that it better reflects the complexity of the software systems for which C++ is often chosen, systems in which understanding individual language features is not enough. For example, experienced C++ developers know that understanding inline functions and understanding virtual destructors does not necessarily mean you understand inline virtual destructors. Such battle-scarred developers recognize that comprehending the interactions between the features in C++ is of the greatest possible importance in using the language effectively. The organization of this book reflects that fundamental truth.

The disadvantage of this design is that you may have to look in more than one place to find everything I have to say about a particular C++ construct. To minimize the inconvenience of this approach, I have sprinkled cross-references liberally throughout the text, and a comprehensive index is provided at the end of the book.

In preparing this second edition, my ambition to improve the book has been tempered by fear. Tens of thousands of programmers embraced the first edition of Effective C++, and I didn't want to destroy whatever characteristics attracted them to it. However, in the six years since I wrote the book, C++ has changed, the C++ library has changed (see Item 49), my understanding of C++ has changed, and accepted usage of C++ has changed. That's a lot of change, and it was important to me that the technical material in Effective C++ be revised to reflect those changes. I'd done what I could by updating individual pages between printings, but books and software are frighteningly similar--there comes a time when localized enhancements fail to suffice, and the only recourse is a system-wide rewrite. This book is the result of that rewrite: Effective C++, Version 2.0.

Those familiar with the first edition may be interested to know that every Item in the book has been reworked. I believe the overall structure of the book remains sound, however, so little there has changed. Of the 50 original Items, I retained 48, though I tinkered with the wording of a few Item titles (in addition to revising the accompanying discussions). The retired Items (i.e., those replaced with completely new material) are numbers 32 and 49, though much of the information that used to be in Item 32 somehow found its way into the revamped Item 1. I swapped the order of Items 41 and 42, because that made it easier to present the revised material they contain. Finally, I reversed the direction of my inheritance arrows. They now follow the almost-universal convention of pointing from derived classes to base classes. This is the same convention I followed in my 1996 book, More Effective C++, an overview of which you can find on pages 237-238 of this volume.

The set of guidelines in this book is far from exhaustive, but coming up with good rules--ones that are applicable to almost all applications almost all the time--is harder than it looks. Perhaps you know of additional guidelines, of more ways in which to program effectively in C++. If so, I would be delighted to hear about them.

On the other hand, you may feel that some of the Items in this book are inappropriate as general advice; that there is a better way to accomplish a task examined in the book; or that one or more of the technical discussions is unclear, incomplete, or misleading. I encourage you to let me know about these things, too.

Donald Knuth has a long history of offering a small reward for people who notify him of errors in his books. The quest for a perfect book is laudable in any case, but in view of the number of bug-ridden C++ books that have been rushed to market, I feel especially strongly compelled to follow Knuth's example. Therefore, for each error in this book that is reported to me--be it technical, grammatical, typographical, or otherwise--I will, in future printings, gladly add to the acknowledgments the name of the first person to bring that error to my attention.

Send your suggested guidelines, your comments, your criticisms, and--sigh--your bug reports to:

Scott Meyers
c/o Publisher, Corporate and Professional Publishing
Addison Wesley Longman, Inc.
1 Jacob Way
Reading, MA 01867
U. S. A.

Alternatively, you may send electronic mail to .

I maintain a list of changes to this book since its first printing, including bug-fixes, clarifications, and technical updates. This list is available at the Effective C++ World Wide Web site, . If you would like a copy of this list, but you lack access to the World Wide Web, please send a request to one of the addresses above, and I will see that the list is sent to you.

SCOTT DOUGLAS MEYERS
STAFFORD, OREGON
JULY 1997


0201924889P04062001
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 5 Customer Reviews
  • Anonymous

    Posted May 18, 2003

    If You Program in C++ Buy This Book

    This is a concise, well written, easy to read but most of all informative book on C++ techniques and pitfalls. It's not an introduction, tutuorial or language reference, so it doesn't teach the basics, and is not for the novice programmer. If you already know the language mechanics, it's got some great tips. Buy it, read it, keep it handy.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted April 24, 2002

    Worth every dime

    Effective C++ and More Effective C++ is money well spent. I have gotton more useful information out of these small books then 1000 page manuals. Everything is presented clearly with examples and why. His writing style is not stale and it feels like he is speaking to you on the same level. There are alot of brilliant people in the field but very few can 'teach'. A truly gifted writer.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted January 26, 2001

    Good book !!!

    This is a well written book. Definitely this is not the book to learn C++ but this book gives practical advice on C++ with 50 rules.I heartily recommend this book to anyone who wants to improve the understanding of C++.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted October 5, 2000

    Great book

    This is a great book for all levels of programmers to improve their programming skills.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted May 3, 2000

    An absolutely wonderful book

    This is not for a beginning programmer. It is aimed at the intermediate or advanced programmer and lists dozens of ways to avoid subtle problems in your code. It includes the best explaination of the power and perils of Multi-Inheritance I've ever come across. Very highly recommended.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 5 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)