Table of Contents
Introduction
1 Getting Started with C++
Learning C++: What Lies Before You
The Origins of C++: A Little History
Portability and Standards
The Mechanics of Creating a Program
Summary
2 Setting Out to C++
C++ Initiation
C++ Statements
More C++ Statements
Functions
Summary
Chapter Review
Programming Exercises
3 Dealing with Data
Simple Variables
The const Qualifier
Floating-Point Numbers
C++ Arithmetic Operators
Summary
Chapter Review
Programming Exercises
4 Compound Types
Introducing Arrays
Strings
Introducing the string Class
Introducing Structures
Unions
Enumerations
Pointers and the Free Store
Pointers, Arrays, and Pointer Arithmetic
Combinations of Types
Array Alternatives
Summary
Chapter Review
Programming Exercises
5 Loops and Relational Expressions
Introducing for Loops
The while Loop
The do while Loop
The Range-Based for Loop (C++11)
Loops and Text Input
Nested Loops and Two-Dimensional Arrays
Summary
Chapter Review
Programming Exercises
6 Branching Statements and Logical Operators
The if Statement
Logical Expressions
The cctype Library of Character Functions
The ?: Operator
The switch Statement
The break and continue Statements
Number-Reading Loops
Simple File Input/Output
Summary
Chapter Review
Programming Exercises
7 Functions: C++’s Programming Modules
Function Review
Function Arguments and Passing by Value
Functions and Arrays
Functions and Two-Dimensional Arrays
Functions and C-Style Strings
Functions and Structures
Functions and string Class Objects
Functions and array Objects
Recursion
Pointers to Functions
Summary
Chapter Review
Programming Exercises
8 Adventures in Functions
C++ Inline Functions
Reference Variables
Default Arguments
Function Overloading
Function Templates
Summary
Chapter Review
Programming Exercises
9 Memory Models and Namespaces
Separate Compilation
Storage Duration, Scope, and Linkage
Namespaces
Summary
Chapter Review
Programming Exercises
10 Objects and Classes
Procedural and Object-Oriented Programming
Abstraction and Classes
Class Constructors and Destructors
Knowing Your Objects: The this Pointer
An Array of Objects
Class Scope
Abstract Data Types
Summary
Chapter Review
Programming Exercises
11 Working with Classes
Operator Overloading
Time on Our Hands: Developing an Operator Overloading Example
Introducing Friends
Overloaded Operators: Member Versus Nonmember Functions
More Overloading: A Vector Class
Automatic Conversions and Type Casts for Classes
Summary
Chapter Review
Programming Exercises
12 Classes and Dynamic Memory Allocation
Dynamic Memory and Classes
The New, Improved String Class
Things to Remember When Using new in Constructors
Observations About Returning Objects
Using Pointers to Objects
Reviewing Techniques
A Queue Simulation
Summary
Chapter Review
Programming Exercises
13 Class Inheritance
Beginning with a Simple Base Class
Inheritance: An Is-a Relationship
Polymorphic Public Inheritance
Static and Dynamic Binding
Access Control: protected
Abstract Base Classes
Inheritance and Dynamic Memory Allocation
Class Design Review
Summary
Chapter Review
Programming Exercises
14 Reusing Code in C++
Classes with Object Members
Private Inheritance
Multiple Inheritance
Class Templates
Summary
Chapter Review
Programming Exercises
15 Friends, Exceptions, and More
Friends
Nested Classes
Exceptions
Runtime Type Identification
Type Cast Operators
Summary
Chapter Review
Programming Exercises
16 The string Class and the Standard Template Library
The string Class
Smart Pointer Template Classes
The Standard Template Library
Generic Programming
Function Objects (a.k.a. Functors)
Algorithms
Other Libraries
Summary
Chapter Review
Programming Exercises
17 Input, Output, and Files
An Overview of C++ Input and Output
Output with cout
Input with cin
File Input and Output
Incore Formatting
Summary
Chapter Review
Programming Exercises
18 Visiting with the New C++ Standard
C++11 Features Revisited
Move Semantics and the Rvalue Reference
New Class Features
Lambda Functions
Wrappers
Variadic Templates
More C++11 Features
Language Change
What Now?
Summary
Chapter Review
Programming Exercises
Appendixes
A Number Bases
B C++ Reserved Words
C The ASCII Character Set
D Operator Precedence
E Other Operators
F The string Template Class
G The Standard Template Library Methods and Functions
H Selected Readings and Internet Resources
I Converting to ISO Standard C++
J Answers to Chapter Reviews
Index