C++ Gotchas
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Home > Computing and Information Technology > Computer programming / software engineering > Programming and scripting languages: general > C++ Gotchas: Avoiding Common Problems in Coding and Design
C++ Gotchas: Avoiding Common Problems in Coding and Design

C++ Gotchas: Avoiding Common Problems in Coding and Design


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

"This may well be the best C++ book I have ever read. I was surprised by the amount I learned."--Matthew Wilson, Development Consultant, Synesis SoftwareC++ Gotchas is the professional programmer's guide to avoiding and correcting ninety-nine of the most common, destructive, and interesting C++ design and programming errors. It also serves as an inside look at the more subtle C++ features and programming techniques.This book discusses basic errors present in almost all C++ code, as well as complex mistakes in syntax, preprocessing, conversions, initialization, memory and resource management, polymorphism, class design, and hierarchy design. Each error and its repercussions are explained in context, and the resolution of each problem is detailed and demonstrated.Author Stephen Dewhurst supplies readers with idioms and design patterns that can be used to generate customized solutions for common problems. Readers will also learn more about commonly misunderstood features of C++ used in advanced programming and design. A companion Web site, located at http://www semantics.org, includes detailed code samples from the book.Readers will discover:How to escape both common and complex traps associated with C++How to produce more reusable, maintainable codeAdvanced C++ programming techniquesNuances of the C++ languageC++ Gotchas shows how to navigate through the greatest dangers in C++ programming, and gives programmers the practical know-how they need to gain expert status. 0321125185B10212002

Table of Contents:
Preface. Acknowledgments. 1. Basics. Gotcha #1: Excessive Commenting. Gotcha #2: Magic Numbers. Gotcha #3: Global Variables. Gotcha #4: Failure to Distinguish Overloading from Default Initialization. Gotcha #5: Misunderstanding References. Gotcha #6: Misunderstanding Const. Gotcha #7: Ignorance of Base Language Subtleties. Gotcha #8: Failure to Distinguish Access and Visibility. Gotcha #9: Using Bad Language. Gotcha #10: Ignorance of Idiom. Gotcha #11: Unnecessary Cleverness. Gotcha #12: Adolescent Behavior. 2. Syntax. Gotcha #13: Array/Initializer Confusion. Gotcha #14: Evaluation Order Indecision. Gotcha #15: Precedence Problems. Gotcha #16: for Statement Debacle. Gotcha #17: Maximal Munch Problems. Gotcha #18: Creative Declaration-Specifier Ordering. Gotcha #19: Function/Object Ambiguity. Gotcha #20: Migrating Type-Qualifiers. Gotcha #21: Self Initialization. Gotcha #22: Static and Extern Types. Gotcha #23: Operator Function Lookup Anomaly. Gotcha #24: Operator — Subtleties. 3. The Preprocessor. Gotcha #25: #define Literals. Gotcha #26: #define Pseudofunctions. Gotcha #27: Overuse of #if. Gotcha #28: Side Effects in Assertions. 4. Conversions. Gotcha #29: Converting Through void *. Gotcha #30: Slicing. Gotcha #31: Misunderstanding Pointer-to-Const Conversion. Gotcha #32: Misunderstanding Pointer-to-Pointer-to-Const Conversion. Gotcha #33: Misunderstanding Pointer-to-Pointer-to-Base Conversion. Gotcha #34: Pointer-to-MultiDimensional Array Problems. Gotcha #35: Unchecked Downcasting. Gotcha #36: Misusing Conversion Operators. Gotcha #37: Unintended Constructor Conversion. Gotcha #38: Casting Under Multiple Inheritance. Gotcha #39: Casting Incomplete Types. Gotcha #40: Old-Style Casts. Gotcha #41: Static Casts. Gotcha #42: Temporary Initialization of Formal Arguments. Gotcha #43: Temporary Lifetime. Gotcha #44: References and Temporaries. Gotcha #45: Ambiguity Failure of dynamic_cast. Gotcha #46: Misunderstanding Contravariance. 5. Initialization. Gotcha #47: Assignment/Initialization Confusion. Gotcha #48: Improperly Scoped Variables. Gotcha #49: Failure to Appreciate C++'s Fixation on Copy Operations. Gotcha #50: Bitwise Copy of Class Objects. Gotcha #51: Confusing Initialization and Assignment in Constructors. Gotcha #52: Inconsistent Ordering of the Member Initialization List. Gotcha #53: Virtual Base Default Initialization. Gotcha #54: Copy Constructor Base Initialization. Gotcha #55: Runtime Static Initialization Order. Gotcha #56: Direct versus Copy Initialization. Gotcha #57: Direct Argument Initialization. Gotcha #58: Ignorance of the Return Value Optimizations. Gotcha #59: Initializing a Static Member in a Constructor. 6. Memory and Resource Management. Gotcha #60: Failure to Distinguish Scalar and Array Allocation. Gotcha #61: Checking for Allocation Failure. Gotcha #62: Replacing Global New and Delete. Gotcha #63: Confusing Scope and Activation of Member new and delete. Gotcha #64: Throwing String Literals. Gotcha #65: Improper Exception Mechanics. Gotcha #66: Abusing Local Addresses. Gotcha #67: Failure to Employ Resource Acquisition Is Initialization. Gotcha #68: Improper Use of auto_ptr. 7. Polymorphism. Gotcha #69: Type Codes. Gotcha #70: Nonvirtual Base Class Destructor. Gotcha #71: Hiding Nonvirtual Functions. Gotcha #72: Making Template Methods Too Flexible. Gotcha #73: Overloading Virtual Functions. Gotcha #74: Virtual Functions with Default Argument Initializers. Gotcha #75: Calling Virtual Functions in Constructors and Destructors. Gotcha #76: Virtual Assignment. Gotcha #77: Failure to Distinguish among Overloading, Overriding, and Hiding. Gotcha #78: Failure to Grok Virtual Functions and Overriding. Gotcha #79: Dominance Issues. 8. Class Design. Gotcha #80: Get/Set Interfaces. Gotcha #81: Const and Reference Data Members. Gotcha #82: Not Understanding the Meaning of Const Member Functions. Gotcha #83: Failure to Distinguish Aggregation and Acquaintance. Gotcha #84: Improper Operator Overloading. Gotcha #85: Precedence and Overloading. Gotcha #86: Friend versus Member Operators. Gotcha #87: Problems with Increment and Decrement. Gotcha #88: Misunderstanding Templated Copy Operations. 9. Hierarchy Design. Gotcha #89: Arrays of Class Objects. Gotcha #90: Improper Container Substitutability. Gotcha #91: Failure to Understand Protected Access. Gotcha #92: Public Inheritance for Code Reuse. Gotcha #93: Concrete Public Base Classes. Gotcha #94: Failure to Employ Degenerate Hierarchies. Gotcha #95: Overuse of Inheritance. Gotcha #96: Type-Based Control Structures. Gotcha #97: Cosmic Hierarchies. Gotcha #98: Asking Personal Questions of an Object. Gotcha #99: Capability Queries. Bibliography. Index. 0321125185T11072002

About the Author :
Stephen C. Dewhurst was among the first users of C++ at Bell Labs. He has more than twenty years of experience in applying C++ to problem areas such as compiler design, securities trading, e-commerce, and embedded telecommunications. He is the author and coauthor of several books on C++ and is a member of the advisory board for The C++ Source, a contributing editor for C/C++ Users Journal, and a former columnist for C++ Report. He is also the author of two C++ compilers and numerous articles on compiler design and C++ programming techniques. 0321125185AB02022005


Best Sellers


Product Details
  • ISBN-13: 9780321125187
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison-Wesley Educational Publishers Inc
  • Height: 233 mm
  • No of Pages: 352
  • Sub Title: Avoiding Common Problems in Coding and Design
  • Width: 186 mm
  • ISBN-10: 0321125185
  • Publisher Date: 09 Dec 2002
  • Binding: Paperback
  • Language: English
  • Spine Width: 22 mm
  • Weight: 604 gr


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
C++ Gotchas: Avoiding Common Problems in Coding and Design
Pearson Education (US) -
C++ Gotchas: Avoiding Common Problems in Coding and Design
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

C++ Gotchas: Avoiding Common Problems in Coding and Design

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    Fresh on the Shelf


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!