Introduction 1
1 Getting Started with C++ 9
Learning C++:What Lies Before You 10
The Origins of C++:A Little History 10
Portability and Standards 15
The Mechanics of Creating a Program 18
Summary 25
2 Setting Out to C++ 27
C++ lnitiation 27
C++ Statements 41
More C++ Statements 45
Functions 48
Summary 61
Chapter Review 62
Programming Exercises 62
3 Dealing with Data 65
Simple Variables 66
The const Qualifier 90
Floating-Point Numbers 92
C++ Arithmetic Operators 97
Summary 109
Chapter Review 110
Programming Exercises 111
4 Compound Types 115
Introducing Arrays 116
Strings 120
Introducing the string Class 131
Introducing Structures 140
Unions 149
Enumerations 150
Pointers and the Free Store 153
Pointers,Arrays,and Pointer Arithmetic 167
Combinations of Types 184
Array Alternatives 186
Summary 190
Chapter Review 191
Programming Exercises 192
5 Loops and Relational Expressions 195
Introducing for Loops 196
The while Loop 224
The do while Loop 231
The Range-Based for Loop(C++11) 233
Loops and Text Input 234
Nested Loops and Two-Dimensional Arrays 244
Summary 249
Chapter Review 250
Programming Exercises 251
6 Branching Statements and Logical Operators 253
The if Statement 254
Logical Expressions 260
The cctype Library of Character Functions 270
The?:Operator 273
The switch Statement 274
The break and continue Statements 280
Number-Reading Loops 283
Simple File Input/Output 287
Summary 298
Chapter Review 298
Programming Exercises 301
7 Functions:C++'s Programming Modules 305
Function Review 306
Function Arguments and Passing by Value 313
Functions and Arrays 320
Functions and Two-Dimensional Arrays 337
Functions and C-Style Strings 339
Functions and Structures 343
Functions and string Class Objects 353
Functions and array Objects 355
Recursion 357
Pointers to Functions 361
Summary 371
Chapter Review 372
Programming Exercises 374
8 Adventures in Functions 379
C++ Inline Functions 379
Reference Variables 383
Default Arguments 409
Function Overloading 412
Function Templates 419
Summary 442
Chapter Review 443
Programming Exercises 444
9 Memory Models and Namespaces 447
Separate Compilation 447
Storage Duration,Scope,and Linkage 453
Namespaces 482
Summary 497
Chapter Review 498
Programming Exercises 501
10 Objects and Classes 505
Procedural and Object-Oriented Programming 506
Abstraction and Classes 507
Class Constructors and Destructors 524
Knowing Your Objects:The this Pointer 539
An Array of Objects 546
Class Scope 549
Abstract Data Types 552
Summary 557
Chapter Review 558
Programming Exercises 559
11 Working with Classes 563
Operator Overloading 564
Time on Our Hands:Developing an Operator Overloading Example 565
Introducing Friends 578
Overloaded Operators:Member Versus Nonmember Functions 587
More Overloading:A Vector Class 588
Automatic Conversions and Type Casts for Classes 606
Summary 621
Chapter Review 623
Programming Exercises 623
12 Classes and Dynamic Memory Allocation 627
Dynamic Memory and Classes 628
The New,Improved String Class 647
Things to Remember WhenUsing new in Constructors 659
Observations About Returning Objects 662
Using Pointers to Objects 665
Reviewing Techniques 676
A Queue Simulation 678
Summary 699
Chapter Review 700
Programming Exercises 702