Applications Programming in C++ 0 Computer Systems and Program Development 0.1 Algorithms 0.2 Computer Systems 0.3 Internal Representations 0.4 Programming Languages 0.5 Problem Solving and Program Development 0.6 Why C++? 1 Introduction to Data Types and Operators 1.1 A First C++ Program 1.2 The int Data Type 1.3 Identifiers 1.4 Sample Application: Conversion of Lengths 1.5 Other Integer Data Types 1.6 Floating-Point Data Types 1.7 Arithmetic Operators 1.8 Sample Application: A Math Puzzle 1.9 Relational and Logical Operators C++ Postscript Common Programming Errors Programming Exercises 2 Control Flow 2.1 The if-else Statement 2.2 Sample Application: Computing Taxes 2.3 The while Statement 2.4 Sample Application: Computing Taxes Revisited 2.5 Files 2.6 The do while Statement 2.7 The for Statement 2.8 Assignment, Increment, and Decrement Operators 2.9 Sample Application: Statistical Measures 2.10 The break, continue, and switch Statements 2.11 Sample Application: Generating Prime Numbers 2.12 Promotions and Casts 2.13 Formatting C++ Postscript Common Programming Errors Programming Exercises 3 Functions 3.1 Introduction 3.2 Scope 3.3 Call by Value 3.4 Sample Application: The Monty Hall Problem 3.5 Call by Reference 3.6 Sample Application: Printing a Calendar 3.7 Overloading Functions 3.8 Recursion Common Programming Errors Programming Exercises 4 Arrays 4.1 Why Arrays? 4.2 The Index Operator 4.3 Arrays and Pointers 4.4 Sample Application: Totaling Votes 4.5 Character Strings 4.6 Arrays and Functions 4.7 String-Handling Functions 4.8 Sample Application: Merging Files 4.9 Multidimensional Arrays 4.10 Sample Application: Maintaining an Address Book C++ Postscript Common Programming Errors Programming Exercises 5 Classes 5.1 Object-Oriented and Procedural Programming 5.2 Classes and Objects 5.3 Sample Application: A Clock Class 5.4 Sample Application: A Time Stamp Class 5.5 Constructors and the Destructor 5.6 Sample Application: A Task Class 5.7 Class Data Members and Methods 5.8 Using Class Libraries 5.9 Pointers to Objects and the Indirect Selection Operator C++ Postscript Common Programming Errors Programming Exercises 6 Inheritance 6.1 Introduction 6.2 Basic Concepts and Syntax 6.3 Sample Application: Tracking Films 6.4 protected Members 6.5 Constructors and Destructors Under Inheritance 6.6 Sample Application: A Sequence Hierarchy C++ Postscript Common Programming Errors Programming Exercises 7 Polymorphism 7.1 Run-Time versus Compile-Time Binding in C++ 7.2 Sample Application: Tracking Films Revisited 7.3 Name Overloading, Name Overriding, and Name Hiding 7.4 Abstract Base Classes C++ Postscript Common Programming Errors Programming Exercises 8 Operator Overloading 8.1 Basic Operator Overloading 8.2 Sample Application: A Complex Number Class 8.3 Operator Overloading Using Top-Level Functions 8.4 friend Functions 8.5 Overloading the Input and Output Operators 8.6 Overloading Some Special Operators 8.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 10 Templates and the Standard Template Library 10.1 Template Basics 10.2 Sample Application: A Template Stack Class 10.3 Namespaces 10.4 The Standard Template Library 10.5 Sample Application: Stock Performance Reports C++ Postscript Common Programming Errors Programming Exercises Appendix A ASCII Table B The Preprocessor C Selected C++ Functions and Methods D Run-Time Type Identification E Exception Handling Hints and Solutions to Odd-Numbered Exercises Index