search for books and compare prices
Tables of Contents for Practical C++ Programming
Chapter/Section Title
Page #
Page Count
Preface
xv
 
Part I. The Basics
What Is C++?
3
4
A Brief History of C++
3
1
C++ Organization
4
2
How to Learn C++
6
1
The Basics of Program Writing
7
16
Programs from Conception to Execution
9
1
Creating a Real Program
10
12
Getting Help in Unix
22
1
Getting Help in an IDE
22
1
Programming Exercises
22
1
Style
23
12
Comments
24
4
C++ Code
28
2
Naming Style
30
1
Coding Religion
31
1
Indentation and Code Format
31
1
Clarity
32
1
Simplicity
33
1
Consistency and Organization
34
1
Further Reading
34
1
Summary
34
1
Basic Declarations and Expressions
35
13
Basic Program Structure
36
1
Simple Expressions
37
1
The std::cout Output Object
38
1
Variables and Storage
39
1
Variable Declarations
40
1
Integers
40
1
Assignment Statements
41
1
Floating-Point Numbers
42
1
Floating-Point Divide Versus Integer Divide
43
1
Characters
44
2
Wide Characters
46
1
Boolean Type
46
1
Programming Exercises
46
1
Answers to Chapter Questions
47
1
Arrays, Qualifiers, and Reading Numbers
48
28
Arrays
48
1
Strings
49
2
Reading Data
51
2
Initializing Variables
53
4
Multidimensional Arrays
57
1
C-Style Strings
58
6
Types of Integers
64
3
Types of Floats
67
1
Constant and Reference Declarations
67
1
Qualifiers
68
2
Hexadecimal and Octal Constants
70
1
Operators for Performing Shortcuts
71
1
Side Effects
72
2
Programming Exercises
74
1
Answers to Chapter Questions
75
1
Decision and Control Statements
76
11
if Statement
76
1
else Statement
77
1
How Not to Use std::strcmp
78
1
Looping Statements
79
1
while Statement
79
2
break Statement
81
1
continue Statement
82
1
The Assignment Anywhere Side Effect
83
1
Programming Exercises
84
1
Answers to Chapter Questions
85
2
The Programming Process
87
20
Setting Up Your Work Area
89
1
The Specification
90
1
Code Design
91
1
The Prototype
92
1
The Makefile
93
3
Testing
96
1
Debugging
96
2
Maintenance
98
1
Revisions
99
1
Electronic Archaeology
99
1
Mark Up the Program
100
1
Use the Debugger
100
1
Use the Text Editor as a Browser
100
1
Add Comments
101
2
Programming Exercises
103
4
Part II. Simple Programming
More Control Statements
107
11
for Statement
107
3
switch Statement
110
5
switch, break, and continue
115
1
Programming Exercises
115
2
Answers to Chapter Questions
117
1
Variable Scope and Functions
118
27
Scope and Storage Class
118
4
Namespaces
122
3
Functions
125
13
Summary of Parameter Types
138
1
Recursion
139
2
Structured Programming Basics
141
1
Real-World Programming
142
1
Programming Exercises
142
1
Answers to Chapter Questions
143
2
The C++ Preprocessor
145
15
#define Statement
145
5
Conditional Compilation
150
2
#include Files
152
2
Parameterized Macros
154
2
Advanced Features
156
1
Summary
156
1
Programming Exercises
157
1
Answers to Chapter Questions
157
3
Bit Operations
160
19
Bit Operators
161
1
The AND Operator (&)
161
2
Bitwise OR (|)
163
1
The Bitwise Exclusive OR (^)
164
1
The Ones Complement Operator (NOT) (~)
164
1
The Left and Right Shift Operators (<<, >>)
165
1
Setting, Clearing, and Testing Bits
166
3
Bitmapped Graphics
169
5
Programming Exercises
174
1
Answers to Chapter Questions
175
4
Part III. Advanced Types and Classes
Advanced Types
179
12
Structures
179
2
Unions
181
3
typedef
184
1
enum Type
185
1
Bit Members or Packed Structures
186
2
Arrays of Structures
188
1
Programming Exercises
189
1
Answers to Chapter Questions
189
2
Simple Classes
191
20
Stacks
191
4
Improved Stack
195
2
Using a Class
197
2
Introduction to Constructors and Destructors
199
5
Automatically Generated Member Functions
204
1
Shortcuts
205
1
Style
206
2
Structures Versus Classes
208
1
Programming Exercises
209
2
More on Classes
211
10
Friends
211
2
Constant Functions
213
2
Constant Members
215
1
Static Member Variables
216
2
Static Member Functions
218
1
The Meaning of static
218
1
Programming Exercises
219
2
Simple Pointers
221
24
const Pointers
226
1
Pointers and Printing
226
1
Pointers and Arrays
227
7
The reinterpret_cast
234
1
Pointers and Structures
234
1
Command-Line Arguments
235
4
Programming Exercises
239
1
Answers to Chapter Questions
240
5
Part IV. Advanced Programming Concepts
File Input/Output
245
32
C++ File I/O
245
5
Conversion Routines
250
4
Binary and ASCII Files
254
1
The End-of-Line Puzzle
255
1
Binary I/O
256
1
Buffering Problems
257
1
Unbuffered I/O
258
4
Designing File Formats
262
2
C-Style I/O Routines
264
2
C-Style Conversion Routines
266
4
C-Style Binary I/O
270
2
C- Versus C++- Style I/O
272
2
Programming Exercises
274
1
Answers to Chapter Questions
275
2
Debugging and Optimization
277
33
Code Reviews
277
3
Serial Debugging
280
2
Going Through the Output
282
1
Interactive Debuggers
283
4
Debugging a Binary Search
287
11
Interactive Debugging Tips and Tricks
298
1
Runtime Errors
299
2
Optimization
301
5
How to Optimize
306
2
Case Study: Inline Functions Versus Normal Functions
308
1
Case Study: Optimizing a Color-Rendering Algorithm
308
1
Programming Exercises
309
1
Answers to Chapter Questions
309
1
Operator Overloading
310
27
Creating a Simple Fixed-Point Class
310
5
Operator Functions
315
9
Operator Member Functions
324
2
Warts
326
1
Full Definition of the Fixed-Point Class
326
9
Programming Exercises
335
1
Answers to Chapter Questions
336
1
Floating Point
337
10
Floating-Point Format
337
1
Floating Addition/Subtraction
338
1
Multiplication and Division
339
1
Overflow and Underflow
340
1
Roundoff Error
340
1
Accuracy
341
1
Minimizing Roundoff Error
342
1
Determining Accuracy
342
1
Precision and Speed
343
1
Power Series
344
2
Programming Exercises
346
1
Advanced Pointers
347
24
Pointers, Structures, and Classes
348
2
delete Operator
350
1
Linked Lists
351
3
Ordered Linked Lists
354
3
Doubly Linked Lists
357
3
Trees
360
4
Printing a Tree
364
1
The Rest of the Program
364
3
Data Structures for a Chess Program
367
2
Programming Exercises
369
1
Answers to Chapter Questions
369
2
Advanced Classes
371
22
Derived Classes
371
7
Virtual Functions
378
5
Virtual Classes
383
2
Function Hiding in Derived Classes
385
1
Constructors and Destructors in Derived Classes
385
3
The dynamic_cast Operator
388
1
Summary
389
1
Programming Exercises
389
1
Answers to Chapter Questions
390
3
Part V. Other Language Features
Exceptions
393
8
Adding Exceptions to the Stack Class
394
6
Exceptions Versus assert
400
1
Programming Exercises
400
1
Modular Programming
401
18
Modules
401
1
Public and Private
402
1
The extern Storage Class
402
2
Headers
404
2
The Body of the Module
406
1
A Program to Use Infinite Arrays
406
2
The Makefile for Multiple Files
408
4
Using the Infinite Array
412
5
Dividing a Task into Modules
417
1
Module Design Guidelines
417
1
Programming Exercises
418
1
Templates
419
13
What Is a Template?
419
1
Templates: The Hard Way
419
1
Templates: The C++ Way
420
3
Function Specialization
423
1
Class Templates
424
2
Class Specialization
426
1
Implementation Details
426
3
Advanced Features
429
2
Summary
431
1
Programming Exercises
431
1
Standard Template Library
432
16
STL Basics
432
2
Class List---A Set of Students
434
2
Creating a Waiting List with the STL List
436
1
Storing Grades in a STL Map
437
1
Putting It All Together
437
8
Practical Considerations When Using the STL
445
1
Getting More Information
446
1
Exercises
446
2
Program Design
448
21
Design Goals
448
1
Design Factors
449
1
Design Principles
450
1
Coding
451
6
Objects
457
4
Real-World Design Techniques
461
6
Conclusion
467
2
Putting It All Together
469
28
Requirements
469
2
Code Design
471
1
Coding
472
1
Functional Description
472
5
Testing
477
1
Revisions
477
1
A Final Warning
477
1
Program Files
477
19
Programming Exercises
496
1
From C to C++
497
7
K&R-Style Functions
497
1
struct
498
1
malloc and free
498
2
Turning Structures into Classes
500
1
setjmp and longjmp
501
2
Mixing C and C++ Code
503
1
Summary
503
1
Programming Exercise
503
1
C++'s Dustier Corners
504
6
do/while
504
1
goto
504
2
The ?: Construct
506
1
The Comma Operator
506
1
Overloading the () Operator
507
1
Pointers to Members
507
1
The asm Statement
508
1
The mutable Qualifier
508
1
Run Time Type Identification
509
1
Trigraphs
509
1
Answers to Chapter Questions
509
1
Programming Adages
510
21
General
510
1
Design
511
1
Declarations
511
1
switch Statement
511
1
Preprocessor
511
1
Style
512
1
Compiling
512
1
The Ten Commandments for C++ Programmers
512
1
Final Note
513
1
Answers to Chapter Questions
514
3
Part VI. Appendixes
A. ASCII Table
517
2
B. Ranges
519
2
C. Operator Precedence Rules
521
2
D. Computing Sine Using a Power Series
523
6
E. Resources
529
2
Index
531