Object-Oriented Programming in C++ 1 Object-Oriented Programming 1.1 Object-Oriented and Procedural Programming 1.2 Classes and Abstract Data Types 1.3 The Client/Server Model and Message Passing 1.4 Inheritance and Polymorphism 1.5 Interfaces and Components 2 From C to C++ 2.1 Namespaces 2.2 Introduction to C++ Input/Output 2.3 Files 2.4 C++ Features 2.5 The Type string 2.6 Functions 2.7 The new and delete Operators 2.8 Exception Handling C++ Postscript Common Programming Errors Programming Exercises 3 Classes 3.1 Classes and Objects 3.2 Sample Application: A Stack Class 3.3 Efficiency and Robustness Issues for Classes and Objects 3.4 Sample Application: A Time Stamp Class 3.5 Constructors and the Destructor 3.6 Sample Application: A Task Class 3.7 Class Data Members and Methods 3.8 Pointers to Objects C++ Postscript Common Programming Errors Programming Exercises 4 Inheritance 4.1 Introduction 4.2 Basic Concepts and Syntax 4.3 Sample Application: Tracking Films 4.4 protected Members 4.5 Constructors and Destructors Under Inheritance 4.6 Sample Application: A Sequence Hierarchy 4.7 Multiple Inheritance Common Programming Errors Programming Exercises 5 Polymorphism 5.1 Run-Time versus Compile-Time Binding in C++ 5.2 Sample Application: Tracking Films Revisited 5.3 Name Overloading, Name Overriding, and Name Hiding 5.4 Abstract Base Classes 5.5 Run-Time Type Identification C++ Postscript Common Programming Errors Programming Exercises 6 Operating Overloading 6.1 Basic Operator Overloading 6.2 Sample Application: A Complex Number Class 6.3 Operator Overloading Using Top-Level Functions 6.4 friend Functions 6.5 Overloading the Input and Output Operators 6.6 Overloading the Assignment Operator 6.7 Overloading Some Special Operators 6.8 Sample Application: An Associative Array 6.9 Memory Management Operators C++ Postscript Common Programming Errors Programming Exercises 7 Templates and the Standard Template Library 7.1 Template Basics 7.2 Sample Application: A Template Stack Class 7.3 The Standard Template Library 7.4 Sample Application: Stock Performance Reports C++ Postscript Common Programming Errors Programming Exercises 8 The C++ Input/Output Class Hierarchy 8.1 Overview 8.2 The Classes ios_base and basic_ios 8.3 The High-Level Input/Output Classes 8.4 Manipulators 8.5 The File Input/Output Classes 8.6 Sample Application: A Random Access Class File 8.7 The Character Stream Input/Output Classes 8.8 Sample Application: A High-Level Copy Function 8.9 The Buffer Classes C++ Postscript Common Programming Errors Programming Exercises 9 Object-Oriented Programming in the Microsoft Foundation Classes 9.1 Basic Operator Overloading 9.2 Sample Application: A Complex Number Class 9.3 Operator Overloading Using Top-Level Functions 9.4 friend Functions 9.5 Overloading the Input and Output Operators 9.6 Overloading Some Special Operators 9.7 Sample Application: An Associative Array C++ Postscript Common Programming Errors Programming Exercises 9 Storage 9.1 Compile-Time and Run-Time Storage 9.2 Storage Classes for Variables 9.3 Pointers and Dynamic Storage 9.4 Sample Application: Sorting and Searching 9.5 Classes with Pointers as Data Members C++ Postscript Common Programming Errors Programming Exercises Appendix A ASCII Table B Selected C++ Functions and Methods Hints and Solutions to Odd-Numbered Exercises Index