Chapter 1Introduction 1.1Overview of Programming 1.1.1What Is Programming? 1.1.2How Do We Write a Program? 1.2The Evolution of Programming Language 1.2.1Assembly and Machine Languages 1.2.2Early Languages 1.2.3Later-Generation Languages 1.2.4Modem Languages 1.3Programming Methodologies 1.3.1Structured Programming 1.3.2Object-Oriented Programming 1.4Object-Oriented Programming 1.5C++ Programming Language 1.5.1History of CandC++ 1.5.2Learning C++ Word Tips Exercises Chapter 2Basic Facilities 2.1C++ Program Structure 2.2Input / Output Streams 2.3Constant 2.4Functions 2.4.1Function Declarations 2.4.2Function Definitions 2.4.3Default Arguments 2.4.4Inline Functions 2.4.5Overloading Functions 2.5References 2.5.1Reference Definition 2.5.2Reference Variables as Parameters 2.5.3References as Value-Returning 2.5.4References as Left-Hand Values 2.6Namespaces Word Tips Exercises Chapter 3Classes and Objects (Ⅰ) 3.1Structures 3.1.1Defining a Structure 3.1.2Accessing Members of Structures 3.1.3Structures with Member Functions 3.2Data Abstraction and Classes 3.2.1 Data Abstraction 3.2.2Defining Classes 3.2.3Defining Objects 3.2.4Accessing Member Functions 3.2.5In-Class Member Function Definition 3.2.6File Structure of an Abstract Data Type 3.3Information Hiding 3.4Access Control 3.5Constructors 3.5.1Overloading Constructors 3.5.2Constructors with Default Parameters 3.6Destructors 3.6.1 Definition of Destructors 3.6.2Order of Constructor and Destructor Calls 3.7Encapsulation 3.8Case Study: A GradeBook Class Word Tips Exercises Chapter 4Classes and Objects (Ⅱ) 4.1Constant Member Functions and ConstantObjects 4.2this Pointers 4.3Static Members 4.3.1Static Data Members 4.3.2Static Member Functions 4.4Free Store 4.5Objects as Members of Classes 4.6Copy Members 4.6.1Definition of Copy Constructors 4.6.2Shallow Copy and Deep Copy 4.7Arrays of Objects 4.7.1Initialize an Array of Objects by Using a Default Constructor 4.7.2Initialize an Array of Objects by Using Constructors with Parameters 4.8Friends 4.8.1Friend Functions 4.8.2Friend Classes 4.9Case Study : Examples of Used-defined Types 4.9.1A Better Date Class 4.9.2A GradeBook Class with Objects of the Student Class Word Tips Exercises Chapter 5Operator Overloading 5.1Why Operator Overloading Is Need 5.2Operator Functions 5.2.1 Overloaded Operators 5.2.2Operator Functions 5.3Binary and Unary Operators 5.3.1Overloading Binary Operators 5.3.2Overloading Unary Operators 5.4Overloading Combinatorial Operators 5.5Mixed Arithmetic of User-Defined Types 5.6Type Conversion of User-Defined Types 5.7Examples of Operator Overloading 5.7.1 A Complex Number Class 5.7.2A String Class Word Tips Exercises Chapter 6Inheritance 6.1Class Hierarchies 6.2Derived Classes 6.2.1Declaration of Derived Classes 6.2.2Structure of Derived Classes 6.3Constructors and Destructors of Derived Classes 6.3.1Constructors of Derived Classes 6.3.2Destructors of Derived Classes 6.3.3Order of Calling Class Objects 6.3.4Inheritance and Composition 6.4Member Functions of Derived Classes 6.5Access Control 6.5.1Access Control in Classes 6.5.2Access to Base Classes 6.6Multiple Inheritance 6.6.1Declaration of Multiple Inheritance 6.6.2Constructors of Multiple Inheritance 6.7Virtual Inheritance 6.7.1Multiple Inheritance Ambiguities 6.7.2Trying to Solve Inheritance Ambiguities 6.7.3Virtual Base Classes 6.7.4Constructing Objects of Multiple Inheritance Word Tips Exercises Chapter 7Polymorphism and Virtual Functions 7.1Polymorphism 7.1.1Concept of Polymorphism 7.1.2Binding 7.2Virtual Functions 7.2.1Definition of Vitual Functions 7.2.2Extensibility 7.2.3Principle of Virtual Functions 7.2.4Virtual Destructors 7.2.5Function Overloading and Function Overriding 7.3Abstract Base Classes 7.4Case Study: A Mini System Word Tips Exercises Chapter 8Templates 8.1Template Mechanism 8.2Function Templates and Template Functions 8.2.1Why We Use Function Templates? 8.2.2Definition of Function Templates 8.2.3Function Template Instantiation 8.2.4Function Template with Different Parameter Types 8.2.5Function Template Overloading 8.3Class Templates and Template Classes 8.3.1Definition of Class Templates 8.3.2Class Template Instantiation 8.4Non-Type Parameters for Templates 8.5Derivation and Class Templates 8.6Case Study : An Example of the Vector Class Template Word Tips Exercises References