Record ID | ia:cgotchasavoiding0000dewh |
Source | Internet Archive |
Download MARC XML | https://archive.org/download/cgotchasavoiding0000dewh/cgotchasavoiding0000dewh_marc.xml |
Download MARC binary | https://www.archive.org/download/cgotchasavoiding0000dewh/cgotchasavoiding0000dewh_meta.mrc |
LEADER: 04772cam 22003134a 4500
001 9919731690001661
005 20150423122444.0
008 020803s2003 maua b 001 0 eng
010 $a 2002028191
020 $a0321125185 (alk. paper)
035 $a(CSdNU)u189541-01national_inst
035 $a(OCoLC)50334259
035 $a(OCoLC)50334259
040 $aDLC$cDLC$dOrPss
042 $apcc
049 $aCNUM
050 00 $aQA76.73.C153$bD488 2003
082 00 $a005.13/3$221
100 1 $aDewhurst, Stephen C.
245 10 $aC++ gotchas :$bavoiding common problems in coding and design / $cStephen C. Dewhurst.
260 $aBoston :$bAddison-Wesley,$c2003.
300 $axvi, 325 p. :$bill. ;$c24 cm.
440 0 $aAddison-Wesley professional computing series
504 $aIncludes bibliographical references (p. 307) and index.
505 0 $aExcessive Commenting -- Magic Numbers -- Global Variables -- Failure to Distinguish Overloading from Default Initialization -- Misunderstanding References -- Misunderstanding Const -- Ignorance of Base Language Subtleties -- Failure to Distinguish Access and Visibility -- Using Bad Language -- Ignorance of Idiom -- Unnecessary Cleverness -- Adolescent Behavior -- Syntax -- Array/Initializer Confusion -- Evaluation Order Indecision -- Precedence Problems -- For Statement Debacle -- Maximal Munch Problems -- Creative Declaration-Specifier Ordering -- Function/Object Ambiguity -- Migrating Type-Qualifiers -- Self-Initialization -- Static and Extern Types -- Operator Function Lookup Anomaly -- Operator to Subtleties -- The Preprocessor -- #define Literals -- #define Pseudofunctions -- Overuse of #if -- Side Effects in Assertions -- Conversions -- Converting through void * -- Slicing -- Misunderstanding Pointer-to-Const Conversion -- Misunderstanding Pointer-to-Pointer-to-Const Conversion -- Misunderstanding Pointer-to-Pointer-to-Base Conversion -- Pointer-to-Multidimensional-Array Problems -- Unchecked Downcasting -- Misusing Conversion Operators -- Unintended Constructor Conversion -- Casting under Multiple Inheritance -- Casting Incomplete Types -- Old-Style Casts -- Static Casts -- Temporary Initialization of Formal Arguments -- Temporary Lifetime -- References and Temporaries -- Ambiguity Failure of dynamic_cast -- Misunderstanding Contravariance -- Initialization -- Assignment/Initialization Confusion -- Improperly Scoped Variables -- Failure to Appreciate C++'s Fixation on Copy Operations -- Bitwise Copy of Class Objects -- Confusing Initialization and Assignment in Constructors -- Inconsistent Ordering of the Member Initialization List -- Virtual Base Default Initialization -- Copy Constructor Base Initialization -- Runtime Static Initialization Order -- Direct versus Copy Initialization -- Direct Argument Initialization -- Ignorance of the Return Value Optimizations -- Initializing a Static Member in a Constructor -- Memory and Resource Management -- Failure to Distinguish Scalar and Array Allocation -- Checking for Allocation Failure -- Replacing Global New and Delete -- Confusing Scope and Activation of Member new and delete -- Throwing String Literals -- Improper Exception Mechanics -- Abusing Local Addresses -- Failure to Employ Resource Acquisition Is Initialization -- Improper Use of auto_ptr -- Polymorphism -- Type Codes -- Nonvirtual Base Class Destructor -- Hiding Nonvirtual Functions -- Making Template Methods Too Flexible -- Overloading Virtual Functions -- Virtual Functions with Default Argument Initializers -- Calling Virtual Functions in Constructors and Destructors -- Virtual Assignment -- Failure to Distinguish among Overloading, Overriding, and Hiding -- Failure to Grok Virtual Functions and Overriding -- Dominance Issues -- Class Design -- Get/Set Interfaces -- Const and Reference Data Members -- Not Understanding the Meaning of Const Member Functions -- Failure to Distinguish Aggregation and Acquaintance -- Improper Operator Overloading -- Precedence and Overloading -- Friend versus Member Operators -- Problems with Increment and Decrement -- Misunderstanding Templated Copy Operations -- Hierarchy Design -- Arrays of Glass Objects -- Improper Container Substitutability -- Failure to Understand Protected Access -- Public Inheritance for Code Reuse -- Concrete Public Base Classes -- Failure to Employ Degenerate Hierarchies -- Overuse of Inheritance -- Type-Based Control Structures -- Cosmic Hierarchies -- Asking Personal Questions of an Object -- Capability Queries.
650 0 $aC++ (Computer program language)
949 $aQA 76.73.C153 D488 2003$i31786101803150
994 $a92$bCNU
999 $aQA 76.73 .C153 D488 2003$wLC$c1$i31786101803150$d1/12/2012$e10/7/2004 $f6/22/2004$g1$lCIRCSTACKS$mNULS$n2$q1$rY$sY$tBOOK$u3/31/2004