Migrating from Pascal to C

1-C++ as Structured Programming: An Historical Perspective.- 1.0 Introduction.- 1.1 Structured Programming.- History of Pascal as Structured Programming.- Control Structures.- Data Structures.- Other Characteristics of Structured Programming.- Concluding Remarks on Structured Programming.- 1.2 Algorithms + Data Structures = Objects.- Classes and Objects for the Pascal Programmer.- Simula-Like Classes.- The Power of Classes and Objects.- Concluding Remarks on Classes and Objects.- 1.3 Programming Paradigms.- Goals for C++.- References.- 2-The C++ Subset That Covers Pascal.- 2.0 Introduction.- 2.1 Orientation to C++.- C++ Is in Lower Case.- Program Comments.- Using Libraries.- The main() Function.- Building a C++ Program.- 2.2 Data Types and Data Structures.- Constants.- Enumerated Data Types.- The Subrange Type.- The Struct.- Arrays.- 2.3 Arithmetic, Boolean, and Logical Expressions.- Cast Float.- The Cast int.- Data Conversion with Assignment.- Chars and Ints.- Relational and Logical Operators.- Precedence in Relational Expressions.- 2.4 Control Structures.- The if and if... else Statements.- The switch Statement.- The while Loop.- The do ... while Loop.- The for Loop.- The Unconditional Branch.- 2.5 Functions.- Function Basics.- Functions and Procedures.- Constructing Functions.- The Declarator.- The Return.- Examples of Functions.- The Prototype.- Scope and Lifetime.- Arrays as Parameters.- Structs as Parameters.- 2.6 Dynamically Allocated Structures.- Typedef.- Operator new.- Member Access.- Manipulating Dynamic Structures.- Delete.- Data Structure as Arguments.- 2.7 Output and Input.- Using cout for Output.- Using cin for Input.- File I/O.- 2.8 Summary and Review.- Index of C++ Symbols, Keywords, Operators, and Library Functions Forming "the Pascal Subset".- References.- 3-Procedural C++ That Extends Pascal.- 3.0 Introduction.- 3.1 Operators.- Assignment.- The Compound Assignment Operators.- The Unary Increment and Decrement Operators.- The Conditional Expression Operator,?:.- The sizeof Operator.- Data Type Conversion.- The address-of Operator and the Indirection Operator.- 3.2 Pointers.- Understanding and Managing Arrays.- Automatic char Arrays.- Dynamically Allocated Arrays.- 3.3 Extending Functions.- Function-Name Overloading.- Default Values for Trailing Arguments.- Static Variables Within Functions.- 3.4 Summaries.- References.- 4-C++ and Object-Oriented Programming.- 4.0 Introduction.- 4.1 Classes and Objects.- Classes.- Access and Membership.- Member Functions.- Objects.- Selectors and Modifiers.- Overloading Member Functions.- Free Functions That Have Box Arguments and Return Boxes.- Abstract Data Types.- Concluding Remark on Classes and Objects in C++.- 4.2 Constructors and Destructors.- Constructors.- An Example with Constructors.- Destructors.- Static Data and Functions.- Constant Objects.- 4.3 Manipulating Abstractions: Friends and Operator Overloading.- Friend Function and Friend Classes.- Operator Overloading.- 4.4 Relationships Among Classes: Composition and Derivation.- Composition.- Inheritance.- Multiple Inheritance.- Polymorphism.- References.- 5-Templates.- 5.0 Introduction.- 5.1 Function Templates.- Motivating Function Templates.- Defining Function Templates.- 5.2 Class Templates.- A Container Built From Two Scalars.- A Container Built From an Array.- A Container Built From a Linked Storage Structure.- Reference.- Exercises.- 1.- 2.- 3.- 4.- 5.- Answers to Odd-Numbered Exercises.- 1.- 2.- 3.- 4.- 5.