Essential C++ (Paperback)
Stanley B. Lippman
Essential C++ offers a fast-track to learning and working with C++. This book is specifically designed to bring you up to speed in a short amount of time. It focuses on the elements of C++ programming that you are most likely to encounter and examines features and techniques that help solve real-world programming challenges. Essential C++ presents the basics of C++ in the context of procedural, generic, object-based, and object-oriented programming. It is organized around a series of increasingly complex programming problems, and language features are introduced as solutions to these problems. In this way you will not only learn about the functions and structure of C++, but will understand their purpose and rationale.
Structure of This Book.
A Note on the Source Code.
Where to Find More Information.
1. Basic C++ Programming.
Defining and Initializing a Data Object.
Writing Conditional and Loop Statements.
How to Use Arrays and Vectors.
Pointers Allow for Flexibility.
Writing and Reading Files.
2. Procedural Programming.
Invoking a Function.
Providing Default Parameter Values.
Using Local Static Objects.
Declaring a Function Inline.
Providing Overloaded Functions.
Defining and Using Template Functions.
Pointers to Functions Add Flexibility.
Setting Up a Header File.
3. Generic Programming.
Making Sense of Iterators.
Operations Common to All Containers.
Using the Sequential Containers.
Using the Generic Algorithms.
How to Design a Generic Algorithm.
Using a Map.
Using a Set.
How to Use Iterator Inserters.
Using the iostream Iterators.
4. Object-Based Programming.
What are Class Constructors and the Class Destructor?
What are mutable and const?
What is the this Pointer?
Static Class Members.
Building an Iterator Class.
Collaboration Sometimes Requires Friendship.
Implementing a Copy Assignment Operator.
Implementing a Function Object.
Providing Class Instances of the iostream Operators.
Pointers to Class Member Functions.
5. Object-Oriented Programming.
Polymorphism without Inheritance.
Defining an Abstract Base Class.
Defining a Derived Class.
Using an Inheritance Hierarchy.
How Abstract Should a Base Class Be?
Initialization, Destruction, and Copy.
Defining a Derived Class Virtual Function.
Run-Time Type Identification.
6. Programming with Templates.
The Template Class Definition.
Handling Template Type Parameters.
Implementing the Template Class.
A Function Template Output Operator.
Constant Expressions and Default Parameters.
Template Parameters as Strategy.
Member Template Functions.
7. Exception Handling.
Catching an Exception.
Trying for an Exception.
Local Resource Management.
The Standard Exceptions.
Appendix A: Exercise Solutions.
Appendix B: Generic Algorithms Handbook.