{"product_id":"brief-c-isbn-9781119739708","title":"Brief C++","description":"\u003cp\u003e\u003cb\u003e\u003ci\u003eBrief C++: Late Objects, 3rd Edition\u003c\/i\u003e\u003c\/b\u003e focuses on the essentials of effective learning and is suitable for a two-semester introduction to programming sequence. The interactive eText requires no prior programming experience and only a modest amount of high school algebra.  It provides an approachable introduction to fundamental programming techniques and design skills, helping students master basic concepts and become competent coders.  Objects are used where appropriate in early sections of the program. Students begin designing and implementing their own classes in Section 9.\u003c\/p\u003e \u003cp\u003eChoosing the enhanced eText format allows students to develop their coding skills using targeted, progressive interactivities designed to integrate with the eText.  All sections include built-in activities, open-ended review exercises, programming exercises, and projects to help students practice programming and build confidence. These activities go far beyond simplistic multiple-choice questions and animations. They have been designed to guide students along a learning path for mastering the complexities of programming. Students demonstrate comprehension of programming structures, then practice programming with simple steps in scaffolded settings, and finally write complete, automatically graded programs.\u003c\/p\u003e \u003cp\u003eThe perpetual access VitalSource Enhanced eText, when integrated with your school’s learning management system, provides the capability to monitor student progress in VitalSource SCORECenter and track grades for homework or participation.\u003c\/p\u003e \u003cp\u003e*Enhanced eText and interactive functionality available through select vendors and may require LMS integration approval for SCORECenter.\u003c\/p\u003e \u003cp\u003ePreface v\u003c\/p\u003e \u003cp\u003eSpecial Features xxiv\u003c\/p\u003e \u003cp\u003eQuick Reference xxviii\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIntroduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 What is Programming? 2\u003c\/p\u003e \u003cp\u003e1.2 The Anatomy of a Computer 3\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Computers are Everywhere 5\u003c\/p\u003e \u003cp\u003e1.3 Machine Code and Programming Languages 5\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Standards Organizations 7\u003c\/p\u003e \u003cp\u003e1.4 Becoming Familiar with Your Programming Environment 7\u003c\/p\u003e \u003cp\u003ePT 1 Backup Copies 10\u003c\/p\u003e \u003cp\u003e1.5 Analyzing Your First Program 11\u003c\/p\u003e \u003cp\u003eCE 1 Omitting Semicolons 13\u003c\/p\u003e \u003cp\u003eST 1 Escape Sequences 13\u003c\/p\u003e \u003cp\u003e1.6 Errors 14\u003c\/p\u003e \u003cp\u003eCE 2 Misspelling Words 15\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING Algorithm Design 16\u003c\/p\u003e \u003cp\u003eThe Algorithm Concept 16\u003c\/p\u003e \u003cp\u003eAn Algorithm for Solving an Investment Problem 17\u003c\/p\u003e \u003cp\u003ePseudocode 18\u003c\/p\u003e \u003cp\u003eFrom Algorithms to Programs 19\u003c\/p\u003e \u003cp\u003eHT 1 Describing an Algorithm with Pseudocode 19\u003c\/p\u003e \u003cp\u003eWE 1 Writing an Algorithm for Tiling a Floor 21\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Fundamental Data Types 25\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Variables 26\u003c\/p\u003e \u003cp\u003eVariable Definitions 26\u003c\/p\u003e \u003cp\u003eNumber Types 28\u003c\/p\u003e \u003cp\u003eVariable Names 29\u003c\/p\u003e \u003cp\u003eThe Assignment Statement 30\u003c\/p\u003e \u003cp\u003eConstants 31\u003c\/p\u003e \u003cp\u003eComments 31\u003c\/p\u003e \u003cp\u003eCE 1 Using Undefined Variables 33\u003c\/p\u003e \u003cp\u003eCE 2 Using Uninitialized Variables 33\u003c\/p\u003e \u003cp\u003ePT 1 Choose Descriptive Variable Names 33\u003c\/p\u003e \u003cp\u003ePT 2 Do Not Use Magic Numbers 34\u003c\/p\u003e \u003cp\u003eST 1 Numeric Types in C++ 34\u003c\/p\u003e \u003cp\u003eST 2 Numeric Ranges and Precisions 35\u003c\/p\u003e \u003cp\u003eST 3 Defining Variables with auto 35\u003c\/p\u003e \u003cp\u003e2.2 Arithmetic 36\u003c\/p\u003e \u003cp\u003eArithmetic Operators 36\u003c\/p\u003e \u003cp\u003eIncrement and Decrement 36\u003c\/p\u003e \u003cp\u003eInteger Division and Remainder 36\u003c\/p\u003e \u003cp\u003eConverting Floating-Point Numbers to Integers 37\u003c\/p\u003e \u003cp\u003ePowers and Roots 38\u003c\/p\u003e \u003cp\u003eCE 3 Unintended Integer Division 39\u003c\/p\u003e \u003cp\u003eCE 4 Unbalanced Parentheses 40\u003c\/p\u003e \u003cp\u003eCE 5 Forgetting Header Files 40\u003c\/p\u003e \u003cp\u003eCE 6 Roundoff Errors 41\u003c\/p\u003e \u003cp\u003ePT 3 Spaces in Expressions 42\u003c\/p\u003e \u003cp\u003eST 4 Casts 42\u003c\/p\u003e \u003cp\u003eST 5 Combining Assignment and Arithmetic 42\u003c\/p\u003e \u003cp\u003eC\u0026amp;S The Pentium Floating-Point Bug 43\u003c\/p\u003e \u003cp\u003e2.3 Input and Output 44\u003c\/p\u003e \u003cp\u003eInput 44\u003c\/p\u003e \u003cp\u003eFormatted Output 45\u003c\/p\u003e \u003cp\u003e2.4 PROBLEM SOLVING First Do It By Hand 47\u003c\/p\u003e \u003cp\u003eWE 1 Computing Travel Time 48\u003c\/p\u003e \u003cp\u003eHT 1 Carrying out Computations 48\u003c\/p\u003e \u003cp\u003eWE 2 Computing the Cost of Stamps 51\u003c\/p\u003e \u003cp\u003e2.5 Strings 51\u003c\/p\u003e \u003cp\u003eThe string Type 51\u003c\/p\u003e \u003cp\u003eConcatenation 52\u003c\/p\u003e \u003cp\u003eString Input 52\u003c\/p\u003e \u003cp\u003eString Functions 52\u003c\/p\u003e \u003cp\u003eC\u0026amp;S International Alphabets and Unicode 55\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Decisions 59\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 The if Statement 60\u003c\/p\u003e \u003cp\u003eCE 1 A Semicolon After the if Condition 63\u003c\/p\u003e \u003cp\u003ePT 1 Brace Layout 63\u003c\/p\u003e \u003cp\u003ePT 2 Always Use Braces 64\u003c\/p\u003e \u003cp\u003ePT 3 Tabs 64\u003c\/p\u003e \u003cp\u003ePT 4 Avoid Duplication in Branches 65\u003c\/p\u003e \u003cp\u003eST 1 The Conditional Operator 65\u003c\/p\u003e \u003cp\u003e3.2 Comparing Numbers and Strings 66\u003c\/p\u003e \u003cp\u003eCE 2 Confusing = and == 68\u003c\/p\u003e \u003cp\u003eCE 3 Exact Comparison of Floating-Point Numbers 68\u003c\/p\u003e \u003cp\u003ePT 5 Compile with Zero Warnings 69\u003c\/p\u003e \u003cp\u003eST 2 Lexicographic Ordering of Strings 69\u003c\/p\u003e \u003cp\u003eHT 1 Implementing an if Statement 70\u003c\/p\u003e \u003cp\u003eWE 1 Extracting the Middle 72\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Dysfunctional Computerized Systems 72\u003c\/p\u003e \u003cp\u003e3.3 Multiple Alternatives 73\u003c\/p\u003e \u003cp\u003eST 3 The switch Statement 75\u003c\/p\u003e \u003cp\u003e3.4 Nested Branches 76\u003c\/p\u003e \u003cp\u003eCE 4 The Dangling else Problem 79\u003c\/p\u003e \u003cp\u003ePT 6 Hand-Tracing 79\u003c\/p\u003e \u003cp\u003e3.5 PROBLEM SOLVING Flowcharts 81\u003c\/p\u003e \u003cp\u003e3.6 PROBLEM SOLVING Test Cases 83\u003c\/p\u003e \u003cp\u003ePT 7 Make a Schedule and Make Time for Unexpected Problems 84\u003c\/p\u003e \u003cp\u003e3.7 Boolean Variables and Operators 85\u003c\/p\u003e \u003cp\u003eCE 5 Combining Multiple Relational Operators 88\u003c\/p\u003e \u003cp\u003eCE 6 Confusing \u0026amp;\u0026amp; and || Conditions 88\u003c\/p\u003e \u003cp\u003eST 4 Short-Circuit Evaluation of Boolean Operators 89\u003c\/p\u003e \u003cp\u003eST 5 De Morgan’s Law 89\u003c\/p\u003e \u003cp\u003e3.8 APPLICATION Input Validation 90\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Artificial Intelligence 92\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Loops 95\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 The while Loop 96\u003c\/p\u003e \u003cp\u003eCE 1 Infinite Loops 100\u003c\/p\u003e \u003cp\u003eCE 2 Don’t Think “are We There Yet?” 101\u003c\/p\u003e \u003cp\u003eCE 3 Off-by-One Errors 101\u003c\/p\u003e \u003cp\u003eC\u0026amp;S The First Bug 102\u003c\/p\u003e \u003cp\u003e4.2 PROBLEM SOLVING Hand-Tracing 103\u003c\/p\u003e \u003cp\u003e4.3 The for Loop 106\u003c\/p\u003e \u003cp\u003ePT 1 Use for Loops for Their Intended Purpose Only 109\u003c\/p\u003e \u003cp\u003ePT 2 Choose Loop Bounds That Match Your Task 110\u003c\/p\u003e \u003cp\u003ePT 3 Count Iterations 110\u003c\/p\u003e \u003cp\u003e4.4 The do Loop 111\u003c\/p\u003e \u003cp\u003ePT 4 Flowcharts for Loops 111\u003c\/p\u003e \u003cp\u003e4.5 Processing Input 112\u003c\/p\u003e \u003cp\u003eSentinel Values 112\u003c\/p\u003e \u003cp\u003eReading Until Input Fails 114\u003c\/p\u003e \u003cp\u003eST 1 Clearing the Failure State 115\u003c\/p\u003e \u003cp\u003eST 2 The Loop-and-a-Half Problem and the break Statement 116\u003c\/p\u003e \u003cp\u003eST 3 Redirection of Input and Output 116\u003c\/p\u003e \u003cp\u003e4.6 PROBLEM SOLVING Storyboards 117\u003c\/p\u003e \u003cp\u003e4.7 Common Loop Algorithms 119\u003c\/p\u003e \u003cp\u003eSum and Average Value 119\u003c\/p\u003e \u003cp\u003eCounting Matches 120\u003c\/p\u003e \u003cp\u003eFinding the First Match 120\u003c\/p\u003e \u003cp\u003ePrompting Until a Match is Found 121\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 121\u003c\/p\u003e \u003cp\u003eComparing Adjacent Values 122\u003c\/p\u003e \u003cp\u003eHT 1 Writing a Loop 123\u003c\/p\u003e \u003cp\u003eWE 1 Credit Card Processing 126\u003c\/p\u003e \u003cp\u003e4.8 Nested Loops 126\u003c\/p\u003e \u003cp\u003eWE 2 Manipulating the Pixels in an Image 129\u003c\/p\u003e \u003cp\u003e4.9 PROBLEM SOLVING Solve a Simpler Problem First 130\u003c\/p\u003e \u003cp\u003e4.10 Random Numbers and Simulations 134\u003c\/p\u003e \u003cp\u003eGenerating Random Numbers 134\u003c\/p\u003e \u003cp\u003eSimulating Die Tosses 135\u003c\/p\u003e \u003cp\u003eThe Monte Carlo Method 136\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Digital Piracy 138\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Functions 141\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Functions as Black Boxes 142\u003c\/p\u003e \u003cp\u003e5.2 Implementing Functions 143\u003c\/p\u003e \u003cp\u003ePT 1 Function Comments 146\u003c\/p\u003e \u003cp\u003e5.3 Parameter Passing 146\u003c\/p\u003e \u003cp\u003ePT 2 Do Not Modify Parameter Variables 148\u003c\/p\u003e \u003cp\u003e5.4 Return Values 148\u003c\/p\u003e \u003cp\u003eCE 1 Missing Return Value 149\u003c\/p\u003e \u003cp\u003eST 1 Function Declarations 150\u003c\/p\u003e \u003cp\u003eHT 1 Implementing a Function 151\u003c\/p\u003e \u003cp\u003eWE 1 Generating Random Passwords 152\u003c\/p\u003e \u003cp\u003eWE 2 Using a Debugger 152\u003c\/p\u003e \u003cp\u003e5.5 Functions Without Return Values 153\u003c\/p\u003e \u003cp\u003e5.6 PROBLEM SOLVING Reusable Functions 154\u003c\/p\u003e \u003cp\u003e5.7 PROBLEM SOLVING Stepwise Refinement 156\u003c\/p\u003e \u003cp\u003ePT 3 Keep Functions Short 161\u003c\/p\u003e \u003cp\u003ePT 4 Tracing Functions 161\u003c\/p\u003e \u003cp\u003ePT 5 Stubs 162\u003c\/p\u003e \u003cp\u003eWE 3 Calculating a Course Grade 163\u003c\/p\u003e \u003cp\u003e5.8 Variable Scope and Global Variables 163\u003c\/p\u003e \u003cp\u003ePT 6 Avoid Global Variables 165\u003c\/p\u003e \u003cp\u003e5.9 Reference Parameters 165\u003c\/p\u003e \u003cp\u003ePT 7 Prefer Return Values to Reference Parameters 169\u003c\/p\u003e \u003cp\u003eST 2 Constant References 170\u003c\/p\u003e \u003cp\u003e5.10 Recursive Functions (Optional) 170\u003c\/p\u003e \u003cp\u003eHT 2 Thinking Recursively 173\u003c\/p\u003e \u003cp\u003eC\u0026amp;S The Explosive Growth of Personal Computers 174\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Arrays and Vectors 179\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Arrays \u003cb\u003e180\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDefining Arrays 180\u003c\/p\u003e \u003cp\u003eAccessing Array Elements 182\u003c\/p\u003e \u003cp\u003ePartially Filled Arrays 183\u003c\/p\u003e \u003cp\u003eCE 1 Bounds Errors 184\u003c\/p\u003e \u003cp\u003ePT 1 Use Arrays for Sequences of Related Values 184\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Computer Viruses 185\u003c\/p\u003e \u003cp\u003e6.2 Common Array Algorithms 185\u003c\/p\u003e \u003cp\u003eFilling 186\u003c\/p\u003e \u003cp\u003eCopying 186\u003c\/p\u003e \u003cp\u003eSum and Average Value 186\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 187\u003c\/p\u003e \u003cp\u003eElement Separators 187\u003c\/p\u003e \u003cp\u003eCounting Matches 187\u003c\/p\u003e \u003cp\u003eLinear Search 188\u003c\/p\u003e \u003cp\u003eRemoving an Element 188\u003c\/p\u003e \u003cp\u003eInserting an Element 189\u003c\/p\u003e \u003cp\u003eSwapping Elements 190\u003c\/p\u003e \u003cp\u003eReading Input 191\u003c\/p\u003e \u003cp\u003eST 1 Sorting with the C++ Library 192\u003c\/p\u003e \u003cp\u003eST 2 A Sorting Algorithm 192\u003c\/p\u003e \u003cp\u003eST 3 Binary Search 193\u003c\/p\u003e \u003cp\u003e6.3 Arrays and Functions 194\u003c\/p\u003e \u003cp\u003eST 4 Constant Array Parameters 198\u003c\/p\u003e \u003cp\u003e6.4 PROBLEM SOLVING Adapting Algorithms 198\u003c\/p\u003e \u003cp\u003eHT 1 Working with Arrays 200\u003c\/p\u003e \u003cp\u003eWE 1 Rolling the Dice 203\u003c\/p\u003e \u003cp\u003e6.5 PROBLEM SOLVING Discovering Algorithms by Manipulating Physical Objects 203\u003c\/p\u003e \u003cp\u003e6.6 Two-Dimensional Arrays 206\u003c\/p\u003e \u003cp\u003eDefining Two-Dimensional Arrays 207\u003c\/p\u003e \u003cp\u003eAccessing Elements 207\u003c\/p\u003e \u003cp\u003eLocating Neighboring Elements 208\u003c\/p\u003e \u003cp\u003eComputing Row and Column Totals 208\u003c\/p\u003e \u003cp\u003eTwo-Dimensional Array Parameters 210\u003c\/p\u003e \u003cp\u003eCE 2 Omitting the Column Size of a Two-Dimensional Array Parameter 212\u003c\/p\u003e \u003cp\u003eWE 2 A World Population Table 213\u003c\/p\u003e \u003cp\u003e6.7 Vectors 213\u003c\/p\u003e \u003cp\u003eDefining Vectors 214\u003c\/p\u003e \u003cp\u003eGrowing and Shrinking Vectors 215\u003c\/p\u003e \u003cp\u003eVectors and Functions 216\u003c\/p\u003e \u003cp\u003eVector Algorithms 216\u003c\/p\u003e \u003cp\u003eTwo-Dimensional Vectors 218\u003c\/p\u003e \u003cp\u003ePT 2 Prefer Vectors over Arrays 219\u003c\/p\u003e \u003cp\u003eST 5 The Range-Based for Loop 219\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Pointers and Structures 223\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Defining and Using Pointers 224\u003c\/p\u003e \u003cp\u003eDefining Pointers 224\u003c\/p\u003e \u003cp\u003eAccessing Variables Through Pointers 225\u003c\/p\u003e \u003cp\u003eInitializing Pointers 227\u003c\/p\u003e \u003cp\u003eCE 1 Confusing Pointers with the Data to Which They Point 228\u003c\/p\u003e \u003cp\u003ePT 1 Use a Separate Definition for Each Pointer Variable 229\u003c\/p\u003e \u003cp\u003eST 1 Pointers and References 229\u003c\/p\u003e \u003cp\u003e7.2 Arrays and Pointers 230\u003c\/p\u003e \u003cp\u003eArrays as Pointers 230\u003c\/p\u003e \u003cp\u003ePointer Arithmetic 230\u003c\/p\u003e \u003cp\u003eArray Parameter Variables are Pointers 232\u003c\/p\u003e \u003cp\u003eST 2 Using a Pointer to Step Through an Array 233\u003c\/p\u003e \u003cp\u003eCE 2 Returning a Pointer to a Local Variable 234\u003c\/p\u003e \u003cp\u003ePT 2 Program Clearly, Not Cleverly 234\u003c\/p\u003e \u003cp\u003eST 3 Constant Pointers 235\u003c\/p\u003e \u003cp\u003e7.3 C and C++ Strings 235\u003c\/p\u003e \u003cp\u003eThe char Type 235\u003c\/p\u003e \u003cp\u003eC Strings 236\u003c\/p\u003e \u003cp\u003eCharacter Arrays 237\u003c\/p\u003e \u003cp\u003eConverting Between C and C++ Strings 237\u003c\/p\u003e \u003cp\u003eC++ Strings and the [] Operator 238\u003c\/p\u003e \u003cp\u003eST 4 Working with C Strings 238\u003c\/p\u003e \u003cp\u003e7.4 Dynamic Memory Allocation 240\u003c\/p\u003e \u003cp\u003eCE 3 Dangling Pointers 242\u003c\/p\u003e \u003cp\u003eCE 4 Memory Leaks 243\u003c\/p\u003e \u003cp\u003e7.5 Arrays and Vectors of Pointers 243\u003c\/p\u003e \u003cp\u003e7.6 PROBLEM SOLVING Draw a Picture 246\u003c\/p\u003e \u003cp\u003eHT 1 Working with Pointers 248\u003c\/p\u003e \u003cp\u003eWE 1 Producing a Mass Mailing 249\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Embedded Systems 250\u003c\/p\u003e \u003cp\u003e7.7 Structures 250\u003c\/p\u003e \u003cp\u003eStructured Types 250\u003c\/p\u003e \u003cp\u003eStructure Assignment and Comparison 251\u003c\/p\u003e \u003cp\u003eFunctions and Structures 252\u003c\/p\u003e \u003cp\u003eArrays of Structures 252\u003c\/p\u003e \u003cp\u003eStructures with Array Members 253\u003c\/p\u003e \u003cp\u003eNested Structures 253\u003c\/p\u003e \u003cp\u003e7.8 Pointers and Structures 254\u003c\/p\u003e \u003cp\u003ePointers to Structures 254\u003c\/p\u003e \u003cp\u003eStructures with Pointer Members 255\u003c\/p\u003e \u003cp\u003eST 5 Smart Pointers 256\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Streams 259\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Reading and Writing Text Files 260\u003c\/p\u003e \u003cp\u003eOpening a Stream 260\u003c\/p\u003e \u003cp\u003eReading from a File 261\u003c\/p\u003e \u003cp\u003eWriting to a File 262\u003c\/p\u003e \u003cp\u003eA File Processing Example 262\u003c\/p\u003e \u003cp\u003e8.2 Reading Text Input 265\u003c\/p\u003e \u003cp\u003eReading Words 265\u003c\/p\u003e \u003cp\u003eReading Characters 266\u003c\/p\u003e \u003cp\u003eReading Lines 267\u003c\/p\u003e \u003cp\u003eCE 1 Mixing \u0026gt;\u0026gt; and getline Input 268\u003c\/p\u003e \u003cp\u003eST 1 Stream Failure Checking 269\u003c\/p\u003e \u003cp\u003e8.3 Writing Text Output 270\u003c\/p\u003e \u003cp\u003eST 2 Unicode, UTF-8, and C++ Strings 272\u003c\/p\u003e \u003cp\u003e8.4 Parsing and Formatting Strings 273\u003c\/p\u003e \u003cp\u003e8.5 Command Line Arguments 274\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Encryption Algorithms 277\u003c\/p\u003e \u003cp\u003eHT 1 Processing Text Files 278\u003c\/p\u003e \u003cp\u003eWE 1 Looking for for Duplicates 281\u003c\/p\u003e \u003cp\u003e8.6 Random Access and Binary Files 281\u003c\/p\u003e \u003cp\u003eRandom Access 281\u003c\/p\u003e \u003cp\u003eBinary Files 282\u003c\/p\u003e \u003cp\u003eProcessing Image Files 282\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Databases and Privacy 286\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Classes 289\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Object-Oriented Programming 290\u003c\/p\u003e \u003cp\u003e9.2 Implementing a Simple Class 292\u003c\/p\u003e \u003cp\u003e9.3 Specifying the Public Interface of a Class 294\u003c\/p\u003e \u003cp\u003eCE 1 Forgetting a Semicolon 296\u003c\/p\u003e \u003cp\u003e9.4 Designing the Data Representation 297\u003c\/p\u003e \u003cp\u003e9.5 Member Functions 299\u003c\/p\u003e \u003cp\u003eImplementing Member Functions 299\u003c\/p\u003e \u003cp\u003eImplicit and Explicit Parameters 299\u003c\/p\u003e \u003cp\u003eCalling a Member Function from a Member Function 301\u003c\/p\u003e \u003cp\u003ePT 1 All Data Members Should Be Private; Most Member Functions Should Be Public 303\u003c\/p\u003e \u003cp\u003ePT 2 const Correctness 303\u003c\/p\u003e \u003cp\u003e9.6 Constructors 304\u003c\/p\u003e \u003cp\u003eCE 2 Trying to Call a Constructor 306\u003c\/p\u003e \u003cp\u003eST 1 Overloading 306\u003c\/p\u003e \u003cp\u003eST 2 Initializer Lists 307\u003c\/p\u003e \u003cp\u003eST 3 Universal and Uniform Initialization Syntax 308\u003c\/p\u003e \u003cp\u003e9.7 PROBLEM SOLVING Tracing Objects 308\u003c\/p\u003e \u003cp\u003eHT 1 Implementing a Class 310\u003c\/p\u003e \u003cp\u003eWE 1 Implementing a Bank Account Class 314\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Electronic Voting Machines 314\u003c\/p\u003e \u003cp\u003e9.8 PROBLEM SOLVING Discovering Classes 315\u003c\/p\u003e \u003cp\u003ePT 3 Make Parallel Vectors into Vectors of Objects 317\u003c\/p\u003e \u003cp\u003e9.9 Separate Compilation 318\u003c\/p\u003e \u003cp\u003e9.10 Pointers to Objects 322\u003c\/p\u003e \u003cp\u003eDynamically Allocating Objects 322\u003c\/p\u003e \u003cp\u003eThe -\u0026gt; Operator 323\u003c\/p\u003e \u003cp\u003eThe this Pointer 324\u003c\/p\u003e \u003cp\u003e9.11 PROBLEM SOLVING Patterns for Object Data 324\u003c\/p\u003e \u003cp\u003eKeeping a Total 324\u003c\/p\u003e \u003cp\u003eCounting Events 325\u003c\/p\u003e \u003cp\u003eCollecting Values 326\u003c\/p\u003e \u003cp\u003eManaging Properties of an Object 326\u003c\/p\u003e \u003cp\u003eModeling Objects with Distinct States 327\u003c\/p\u003e \u003cp\u003eDescribing the Position of an Object 328\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Open Source and Free Software 329\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Inheritance 333\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Inheritance Hierarchies 334\u003c\/p\u003e \u003cp\u003e10.2 Implementing Derived Classes 338\u003c\/p\u003e \u003cp\u003eCE 1 Private Inheritance 341\u003c\/p\u003e \u003cp\u003eCE 2 Replicating Base-Class Members 341\u003c\/p\u003e \u003cp\u003ePT 1 Use a Single Class for Variation in Values, Inheritance for Variation in Behavior 342\u003c\/p\u003e \u003cp\u003eST 1 Calling the Base-Class Constructor 342\u003c\/p\u003e \u003cp\u003e10.3 Overriding Member Functions 343\u003c\/p\u003e \u003cp\u003eCE 3 Forgetting the Base-Class Name 345\u003c\/p\u003e \u003cp\u003e10.4 Virtual Functions and Polymorphism 346\u003c\/p\u003e \u003cp\u003eThe Slicing Problem 346\u003c\/p\u003e \u003cp\u003ePointers to Base and Derived Classes 347\u003c\/p\u003e \u003cp\u003eVirtual Functions 348\u003c\/p\u003e \u003cp\u003ePolymorphism 349\u003c\/p\u003e \u003cp\u003ePT 2 Don’t Use Type Tags 352\u003c\/p\u003e \u003cp\u003eCE 4 Slicing an Object 352\u003c\/p\u003e \u003cp\u003eCE 5 Failing to Override a Virtual Function 353\u003c\/p\u003e \u003cp\u003eST 2 Virtual Self-Calls 354\u003c\/p\u003e \u003cp\u003eHT 1 Developing an Inheritance Hierarchy 354\u003c\/p\u003e \u003cp\u003eWE 1 Implementing an Employee Hierarchy for Payroll Processing 359\u003c\/p\u003e \u003cp\u003eC\u0026amp;S Who Controls the Internet? 360\u003c\/p\u003e \u003cp\u003e\u003cb\u003eCay S Hostmann\u003c\/b\u003e grew up in Northern Germany and attended the Christian-Albrechts-Universität in Kiel, a harbor town at the Baltic sea. He received a M.S. in computer science from Syracuse University, and a Ph.D. in mathematics from the University of Michigan in Ann Arbor. For four years, He was VP and CTO of an Internet startup that went from 3 people in a tiny office to a public company. He now teaches computer science at San Jose State University. In his copious spare time, he writes books and articles on programming languages and computer science education.\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47988857962725,"sku":"NP9781119739708","price":111.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119739708.jpg?v=1761781802","url":"https:\/\/k12savings.com\/es\/products\/brief-c-isbn-9781119739708","provider":"K12savings","version":"1.0","type":"link"}