Chapter 24 and Appendices F–K are PDF documents posted online at www.informit.com/title/9780133439854
1.4 Typical C++ Development Environment
1.5 Test-Driving a C++ Application
1.6.1 Windows—A Proprietary Operating System
1.6.2 Linux—An Open-Source Operating System
1.6.3 Apple’s OS X; Apple’s iOS for iPhone®, iPad® and iPod Touch® Devices
1.7 C++11 and the Open Source Boost Libraries
2 Introduction to C++ Programming, Input/Output and Operators
2.2 First Program in C++: Printing a Line of Text
2.3 Modifying Our First C++ Program
2.4 Another C++ Program: Adding Integers
2.6 Decision Making: Equality and Relational Operators
3 Introduction to Classes, Objects and Strings
3.2 Defining a Class with a Member Function
3.3 Defining a Member Function with a Parameter
3.4 Data Members, set Member Functions and get Member Functions
3.5 Initializing Objects with Constructors
3.6 Placing a Class in a Separate File for Reusability
3.7 Separating Interface from Implementation
3.8 Validating Data with set Functions
4 Control Statements: Part 1; Assignment, ++ and -- Operators
4.4 if
...else
Double-Selection Statement
4.5 while
Repetition Statement
4.6 Counter-Controlled Repetition
4.7 Sentinel-Controlled Repetition
4.10 Increment and Decrement Operators
5 Control Statements: Part 2; Logical Operators
5.2 Essentials of Counter-Controlled Repetition
5.4 Examples Using the for
Statement
5.5 do
...while
Repetition Statement
5.6 switch
Multiple-Selection Statement
5.7 break
and continue
Statements
5.9 Confusing the Equality (==
) and Assignment (=
) Operators
6 Functions and an Introduction to Recursion
6.3 Function Definitions with Multiple Parameters
6.4 Function Prototypes and Argument Coercion
6.5 C++ Standard Library Headers
6.6 Case Study: Random Number Generation
6.7 Case Study: Game of Chance; Introducing enum
6.9 Storage Classes and Storage Duration
6.11 Function Call Stack and Activation Records
6.12 Functions with Empty Parameter Lists
6.14 References and Reference Parameters
6.16 Unary Scope Resolution Operator
6.20 Example Using Recursion: Fibonacci Series
7 Class Templates array and vector; Catching Exceptions
7.4.1 Declaring an array
and Using a Loop to Initialize the array
’s Elements
7.4.2 Initializing an array
in a Declaration with an Initializer List
7.4.4 Summing the Elements of an array
7.4.5 Using Bar Charts to Display array
Data Graphically
7.4.6 Using the Elements of an array
as Counters
7.4.7 Using array
s to Summarize Survey Results
7.4.8 Static Local array
s and Automatic Local array
s
7.6 Case Study: Class GradeBook
Using an array
to Store Grades
7.7 Sorting and Searching array
s
7.9 Case Study: Class GradeBook
Using a Two-Dimensional array
7.10 Introduction to C++ Standard Library Class Template vector
8.2 Pointer Variable Declarations and Initialization
8.4 Pass-by-Reference with Pointers
8.6.1 Nonconstant Pointer to Nonconstant Data
8.6.2 Nonconstant Pointer to Constant Data
8.6.3 Constant Pointer to Nonconstant Data
8.6.4 Constant Pointer to Constant Data
8.8 Pointer Expressions and Pointer Arithmetic
8.9 Relationship Between Pointers and Built-In Arrays
9 Classes: A Deeper Look; Throwing Exceptions
9.3 Class Scope and Accessing Class Members
9.4 Access Functions and Utility Functions
9.5 Time
Class Case Study: Constructors with Default Arguments
9.7 When Constructors and Destructors Are Called
9.8 Time Class Case Study: A Subtle Trap—Returning a Reference or a Pointer to a private
Data Member
9.9 Default Memberwise Assignment
9.10 const
Objects and const
Member Functions
9.11 Composition: Objects as Members of Classes
9.12 friend
Functions and friend
Classes
10 Operator Overloading; Class string
10.2 Using the Overloaded Operators of Standard Library Class string
10.3 Fundamentals of Operator Overloading
10.4 Overloading Binary Operators
10.5 Overloading the Binary Stream Insertion and Stream Extraction Operators
10.6 Overloading Unary Operators
10.7 Overloading the Unary Prefix and Postfix ++
and --
Operators
10.9 Dynamic Memory Management
10.10.2 Array
Class Definition
10.11 Operators as Member vs. Non-Member Functions
10.12 Converting Between Types
10.13 explicit
Constructors and Conversion Operators
10.14 Overloading the Function Call Operator ()
11 Object-Oriented Programming: Inheritance
11.2 Base Classes and Derived Classes
11.3 Relationship between Base and Derived Classes
11.3.1 Creating and Using a CommissionEmployee
Class
11.3.2 Creating a BasePlusCommissionEmployee
Class Without Using Inheritance
11.3.3 Creating a CommissionEmployee
–BasePlusCommissionEmployee
Inheritance Hierarchy
11.3.4 CommissionEmployee
–BasePlusCommissionEmployee
Inheritance Hierarchy Using protected
Data
11.3.5 CommissionEmployee
–BasePlusCommissionEmployee
Inheritance Hierarchy Using private
Data
11.4 Constructors and Destructors in Derived Classes
11.5 public
, protected
and private
Inheritance
11.6 Software Engineering with Inheritance
12 Object-Oriented Programming: Polymorphism
12.2 Introduction to Polymorphism: Polymorphic Video Game
12.3 Relationships Among Objects in an Inheritance Hierarchy
12.3.1 Invoking Base-Class Functions from Derived-Class Objects
12.3.2 Aiming Derived-Class Pointers at Base-Class Objects
12.3.3 Derived-Class Member-Function Calls via Base-Class Pointers
12.3.4 Virtual Functions and Virtual Destructors
12.4 Type Fields and switch
Statements
12.5 Abstract Classes and Pure virtual
Functions
12.6 Case Study: Payroll System Using Polymorphism
12.6.1 Creating Abstract Base Class Employee
12.6.2 Creating Concrete Derived Class SalariedEmployee
12.6.3 Creating Concrete Derived Class CommissionEmployee
12.6.4 Creating Indirect Concrete Derived Class BasePlusCommissionEmployee
12.6.5 Demonstrating Polymorphic Processing
12.7 (Optional) Polymorphism, Virtual Functions and Dynamic Binding “Under the Hood”
13 Stream Input/Output: A Deeper Look
13.2.1 Classic Streams vs. Standard Streams
13.2.2 iostream
Library Headers
13.2.3 Stream Input/Output Classes and Objects
13.3.1 Output of char *
Variables
13.3.2 Character Output Using Member Function put
13.4.1 get
and getline
Member Functions
13.4.2 istream
Member Functions peek
, putback
and ignore
13.5 Unformatted I/O Using read
, write
and gcount
13.6 Introduction to Stream Manipulators
13.6.1 Integral Stream Base: dec
, oct
, hex
and setbase
13.6.2 Floating-Point Precision (precision
, setprecision
)
13.6.3 Field Width (width
, setw
)
13.6.4 User-Defined Output Stream Manipulators
13.7 Stream Format States and Stream Manipulators
13.7.1 Trailing Zeros and Decimal Points (showpoint
)
13.7.2 Justification (left
, right
and internal
)
13.7.3 Padding (fill
, setfill
)
13.7.4 Integral Stream Base (dec
, oct
, hex
, showbase
)
13.7.5 Floating-Point Numbers; Scientific and Fixed Notation (scientific
, fixed
)
13.7.6 Uppercase/Lowercase Control (uppercase
)
13.7.7 Specifying Boolean Format (boolalpha
)
13.7.8 Setting and Resetting the Format State via Member Function flags
13.9 Tying an Output Stream to an Input Stream
14.3 Creating a Sequential File
14.4 Reading Data from a Sequential File
14.5 Updating Sequential Files
14.7 Creating a Random-Access File
14.8 Writing Data Randomly to a Random-Access File
14.9 Reading from a Random-Access File Sequentially
14.10 Case Study: A Transaction-Processing Program
15 Standard Library Containers and Iterators
15.2 Introduction to Containers
15.3 Introduction to Iterators
15.4 Introduction to Algorithms
15.5.1 vector
Sequence Container
15.5.2 list
Sequence Container
15.5.3 deque
Sequence Container
15.6.1 multiset
Associative Container
15.6.2 set
Associative Container
15.6.3 multimap
Associative Container
15.6.4 map
Associative Container
16 Standard Library Algorithms
16.2 Minimum Iterator Requirements
16.3.1 fill
, fill_n
, generate
and generate_n
16.3.2 equal
, mismatch
and lexicographical_compare
16.3.3 remove
, remove_if
, remove_copy
and remove_copy_if
16.3.4 replace
, replace_if
, replace_copy
and replace_copy_if
16.3.5 Mathematical Algorithms
16.3.6 Basic Searching and Sorting Algorithms
16.3.7 swap
, iter_swap
and swap_ranges
16.3.8 copy_backward
, merge
, unique
and reverse
16.3.9 inplace_merge
, unique_copy
and reverse_copy
16.3.11 lower_bound
, upper_bound
and equal_range
16.3.13 min
, max
, minmax
and minmax_element
16.6 Standard Library Algorithm Summary
17 Exception Handling: A Deeper Look
17.2 Example: Handling an Attempt to Divide by Zero
17.5 When to Use Exception Handling
17.6 Constructors, Destructors and Exception Handling
17.7 Exceptions and Inheritance
17.9 Class unique_ptr
and Dynamic Memory Allocation
17.10 Standard Library Exception Hierarchy
18 Introduction to Custom Templates
18.3 Function Template to Manipulate a Class-Template Specialization Object
18.5 Default Arguments for Template Type Parameters
18.6 Overloading Function Templates
19 Class string and String Stream Processing: A Deeper Look
19.2 string
Assignment and Concatenation
19.7 Finding Substrings and Characters in a string
19.8 Replacing Characters in a string
19.9 Inserting Characters into a string
19.10 Conversion to Pointer-Based char *
Strings
19.12 String Stream Processing
19.13 C++11 Numeric Conversion Functions
20 Bits, Characters, C Strings and structs
20.4 Example: Card Shuffling and Dealing Simulation
20.7 Character-Handling Library
20.8 C String-Manipulation Functions
20.9 C String-Conversion Functions
20.10 Search Functions of the C String-Handling Library
20.11 Memory Functions of the C String-Handling Library
21.6 Pointers to Class Members (.*
and ->*
)
21.8 Multiple Inheritance and virtual
Base Classes
22 ATM Case Study, Part 1: Object-Oriented Design with the UML
22.2 Introduction to Object-Oriented Analysis and Design
22.3 Examining the ATM Requirements Document
22.4 Identifying the Classes in the ATM Requirements Document
22.5 Identifying Class Attributes
22.6 Identifying Objects’ States and Activities
22.7 Identifying Class Operations
22.8 Indicating Collaboration Among Objects
23 ATM Case Study, Part 2: Implementing an Object-Oriented Design
23.2 Starting to Program the Classes of the ATM System
23.3 Incorporating Inheritance into the ATM System
23.4 ATM Case Study Implementation
23.4.12 Test Program ATMCaseStudy.cpp
A Operator Precedence and Associativity
D.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
D.3 Converting Octal and Hexadecimal Numbers to Binary Numbers
D.4 Converting from Binary, Octal or Hexadecimal to Decimal
D.5 Converting from Decimal to Binary, Octal or Hexadecimal
D.6 Negative Binary Numbers: Two’s Complement Notation
E.2 #include
Preprocessing Directive
E.3 #define
Preprocessing Directive: Symbolic Constants
E.4 #define
Preprocessing Directive: Macros
E.6 #error
and #pragma
Preprocessing Directives
E.8 Predefined Symbolic Constants
Online Chapters and Appendices
Chapter 24 and Appendices F–K are PDF documents posted online at www.informit.com/title/9780133439854
24 C++11 Additional Features
G UML 2: Additional Diagram Types
H Using the Visual Studio Debugger
I Using the GNU C++ Debugger
J Using the Xcode Debugger
K Test Driving a C++ Program on Mac OS X
[Note: The test drives for Windows and Linux are in Chapter 1.]