|
|
Copyright |
|
|
Preface |
|
|
|
Changes to the Fourth Edition |
|
|
|
Structure of This Book |
|
|
|
Acknowledgments |
|
|
Chapter 1. Getting Started |
|
|
|
Section 1.1. Writing a Simple C++ Program |
|
|
|
Section 1.2. A First Look at Input/Output |
|
|
|
Section 1.3. A Word About Comments |
|
|
|
Section 1.4. Control Structures |
|
|
|
Section 1.5. Introducing Classes |
|
|
|
Section 1.6. The C++ Program |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
Part I: The Basics |
|
|
|
Chapter 2. Variables and Basic Types |
|
|
|
Section 2.1. Primitive Built-in Types |
|
|
|
Section 2.2. Literal Constants |
|
|
|
Section 2.3. Variables |
|
|
|
Section 2.4. const Qualifier |
|
|
|
Section 2.5. References |
|
|
|
Section 2.6. Typedef Names |
|
|
|
Section 2.7. Enumerations |
|
|
|
Section 2.8. Class Types |
|
|
|
Section 2.9. Writing Our Own Header Files |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 3. Library Types |
|
|
|
Section 3.1. Namespace using Declarations |
|
|
|
Section 3.2. Library string Type |
|
|
|
Section 3.3. Library vector Type |
|
|
|
Section 3.4. Introducing Iterators |
|
|
|
Section 3.5. Library bitset Type |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 4. Arrays and Pointers |
|
|
|
Section 4.1. Arrays |
|
|
|
Section 4.2. Introducing Pointers |
|
|
|
Section 4.3. C-Style Character Strings |
|
|
|
Section 4.4. Multidimensioned Arrays |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 5. Expressions |
|
|
|
Section 5.1. Arithmetic Operators |
|
|
|
Section 5.2. Relational and Logical Operators |
|
|
|
Section 5.3. The Bitwise Operators |
|
|
|
Section 5.4. Assignment Operators |
|
|
|
Section 5.5. Increment and Decrement Operators |
|
|
|
Section 5.6. The Arrow Operator |
|
|
|
Section 5.7. The Conditional Operator |
|
|
|
Section 5.8. The sizeof Operator |
|
|
|
Section 5.9. Comma Operator |
|
|
|
Section 5.10. Evaluating Compound Expressions |
|
|
|
Section 5.11. The new and delete Expressions |
|
|
|
Section 5.12. Type Conversions |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 6. Statements |
|
|
|
Section 6.1. Simple Statements |
|
|
|
Section 6.2. Declaration Statements |
|
|
|
Section 6.3. Compound Statements (Blocks) |
|
|
|
Section 6.4. Statement Scope |
|
|
|
Section 6.5. The if Statement |
|
|
|
Section 6.6. The switch Statement |
|
|
|
Section 6.7. The while Statement |
|
|
|
Section 6.8. The for Loop Statement |
|
|
|
Section 6.9. The do while Statement |
|
|
|
Section 6.10. The break Statement |
|
|
|
Section 6.11. The continue Statement |
|
|
|
Section 6.12. The goto Statement |
|
|
|
Section 6.13. try Blocks and Exception Handling |
|
|
|
Section 6.14. Using the Preprocessor for Debugging |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 7. Functions |
|
|
|
Section 7.1. Defining a Function |
|
|
|
Section 7.2. Argument Passing |
|
|
|
Section 7.3. The return Statement |
|
|
|
Section 7.4. Function Declarations |
|
|
|
Section 7.5. Local Objects |
|
|
|
Section 7.6. Inline Functions |
|
|
|
Section 7.7. Class Member Functions |
|
|
|
Section 7.8. Overloaded Functions |
|
|
|
Section 7.9. Pointers to Functions |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 8. The IO Library |
|
|
|
Section 8.1. An Object-Oriented Library |
|
|
|
Section 8.2. Condition States |
|
|
|
Section 8.3. Managing the Output Buffer |
|
|
|
Section 8.4. File Input and Output |
|
|
|
Section 8.5. String Streams |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
Part II: Containers and Algorithms |
|
|
|
Chapter 9. Sequential Containers |
|
|
|
Section 9.1. Defining a Sequential Container |
|
|
|
Section 9.2. Iterators and Iterator Ranges |
|
|
|
Section 9.3. Sequence Container Operations |
|
|
|
Section 9.4. How a vector Grows |
|
|
|
Section 9.5. Deciding Which Container to Use |
|
|
|
Section 9.6. strings Revisited |
|
|
|
Section 9.7. Container Adaptors |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 10. Associative Containers |
|
|
|
Section 10.1. Preliminaries: the pair Type |
|
|
|
Section 10.2. Associative Containers |
|
|
|
Section 10.3. The map Type |
|
|
|
Section 10.4. The set Type |
|
|
|
Section 10.5. The multimap and multiset Types |
|
|
|
Section 10.6. Using Containers: Text-Query Program |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 11. Generic Algorithms |
|
|
|
Section 11.1. Overview |
|
|
|
Section 11.2. A First Look at the Algorithms |
|
|
|
Section 11.3. Revisiting Iterators |
|
|
|
Section 11.4. Structure of Generic Algorithms |
|
|
|
Section 11.5. Container-Specific Algorithms |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
Part III: Classes and Data Abstraction |
|
|
|
Chapter 12. Classes |
|
|
|
Section 12.1. Class Definitions and Declarations |
|
|
|
Section 12.2. The Implicit this Pointer |
|
|
|
Section 12.3. Class Scope |
|
|
|
Section 12.4. Constructors |
|
|
|
Section 12.5. Friends |
|
|
|
Section 12.6. static Class Members |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 13. Copy Control |
|
|
|
Section 13.1. The Copy Constructor |
|
|
|
Section 13.2. The Assignment Operator |
|
|
|
Section 13.3. The Destructor |
|
|
|
Section 13.4. A Message-Handling Example |
|
|
|
Section 13.5. Managing Pointer Members |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 14. Overloaded Operations and Conversions |
|
|
|
Section 14.1. Defining an Overloaded Operator |
|
|
|
Section 14.2. Input and Output Operators |
|
|
|
Section 14.3. Arithmetic and Relational Operators |
|
|
|
Section 14.4. Assignment Operators |
|
|
|
Section 14.5. Subscript Operator |
|
|
|
Section 14.6. Member Access Operators |
|
|
|
Section 14.7. Increment and Decrement Operators |
|
|
|
Section 14.8. Call Operator and Function Objects |
|
|
|
Section 14.9. Conversions and Class Types |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
Part IV: Object-Oriented and Generic Programming |
|
|
|
Chapter 15. Object-Oriented Programming |
|
|
|
Section 15.1. OOP: An Overview |
|
|
|
Section 15.2. Defining Base and Derived Classes |
|
|
|
Section 15.3. Conversions and Inheritance |
|
|
|
Section 15.4. Constructors and Copy Control |
|
|
|
Section 15.5. Class Scope under Inheritance |
|
|
|
Section 15.6. Pure Virtual Functions |
|
|
|
Section 15.7. Containers and Inheritance |
|
|
|
Section 15.8. Handle Classes and Inheritance |
|
|
|
Section 15.9. Text Queries Revisited |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 16. Templates and Generic Programming |
|
|
|
Section 16.1. Template Definitions |
|
|
|
Section 16.2. Instantiation |
|
|
|
Section 16.3. Template Compilation Models |
|
|
|
Section 16.4. Class Template Members |
|
|
|
Section 16.5. A Generic Handle Class |
|
|
|
Section 16.6. Template Specializations |
|
|
|
Section 16.7. Overloading and Function Templates |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
Part V: Advanced Topics |
|
|
|
Chapter 17. Tools for Large Programs |
|
|
|
Section 17.1. Exception Handling |
|
|
|
Section 17.2. Namespaces |
|
|
|
Section 17.3. Multiple and Virtual Inheritance |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
|
Chapter 18. Specialized Tools and Techniques |
|
|
|
Section 18.1. Optimizing Memory Allocation |
|
|
|
Section 18.2. Run-Time Type Identification |
|
|
|
Section 18.3. Pointer to Class Member |
|
|
|
Section 18.4. Nested Classes |
|
|
|
Section 18.5. Union: A Space-Saving Class |
|
|
|
Section 18.6. Local Classes |
|
|
|
Section 18.7. Inherently Nonportable Features |
|
|
|
Chapter Summary |
|
|
|
Keyterm Defined Terms |
|
|
Appendix A. The Library |
|
|
|
Section A.1. Library Names and Headers |
|
|
|
Section A.2. A Brief Tour of the Algorithms |
|
|
|
Section A.3. The IO Library Revisited |
|
|
Index |