1 Basic Concepts of C++.- 1.1 Objects, Values, Types, Variables.- 1.1.1 Objects and Addresses.- 1.1.2 Values and Types.- 1.1.3 Referring to Objects and Values: Variables, Constants, Ex-pressions.- 1.2 Defining and Manipulating Objects.- 1.3 References.- 1.4 Functions.- 1.4.1 Defining a function.- 1.4.2 Calling a function.- 1.4.3 More on Parameter Passing.- 1.5 Program Structure.- 1.5.1 Translation Units, Definitions and Declarations.- 1.5.2 The Compilation Process.- 1.5.3 Program Organization.- 1.5.4 Linking and Executing a Program.- 1.6 Syntactic and Lexical Considerations.- 1.6.1 Identifiers and Keywords.- 1.6.2 Comments.- 1.7 Scopes and Namespaces.- 1.7.1 Scopes.- 1.7.2 Namespaces.- 2 Built-inTypes.- 2.1 ArithmeticTypes.- 2.2 Conversionsfor Arithmetic Types.- 2.3 ArithmeticType Operations.- 2.4 String Literals.- 3 Functions.- 3.1 Function Declarations.- 3.1.1 Function Types.Signatures.- 3.1.2 Default Arguments.- 3.1.3 UnspecifiedNumber of Arguments.- 3.1.4 Inline Functions.- 3.2 Overloading.- 3.3 Function Definitions.- 3.3.1 Statements.- 3.3.2 Control Flow Statements.- The compound statement and the sequence operator.- The if statement and the? operator.- The while statements.- The for statement.- The switch statement.- The return, break and continue statements.- 3.3.3 Local and Static Variables.- Local object lifetime.- Persistent local objects.- 4 User-Defined Types.- 4.1 Abstract Data Types.- 4.2 Classes.- 4.2.1 Class Members. Access Specification.- 4.2.2 Class Objects.- 4.2.3 Data Member Declarationsand Object Layout.- 4.2.4 Class Scope.- 4.2.5 Function Member Declaration.- 4.2.6 OverloadingMember Functions.- 4.2.7 Initializing a Class Object.- The default constructor.- The copy constructor.- 4.2.8 Function Member Definition.- 4.2.9 Inline Function Members.- 4.2.10 Member Functions with Default Parameters.- 4.2.11 User-Defined Conversions.- 4.2.12 Operator Overloading.- Overloading the assignment Operator.- Overloading the increment and decrement Operators.- Forbidding Operators.- 4.2.13 Finalizing an Object.- 4.2.14 Member Objects.- 4.2.15 Friends.- 4.2.16 Nested Classes.- 4.2.17 Static Members.- 4.2.18 Implementation Aspects.- 4.2.19 Example: the Rational Class.- 4.3 Enumerations.- 4.4 Typedef.- 5 Built-in Type Constructors.- 5.1 Constant Objects.- 5.2 Pointers.- 5.2.1 Pointers, Addresses, Dereferencing.- 5.2.2 Handies.- 5.2.3 Member Selection from Pointers.- 5.2.4 Constant Pointers.- 5.2.5 Pointers vs. References.- 5.2.6 The this Pointer.- 5.3 Arrays.- 5.3.1 Initializing an Array.- 5.3.2 Arrays vs. Pointers, Pointer Arithmetic.- 5.3.3 Array Parameters.- 5.3.4 Multidimensional Arrays.- 5.4 Command Line Processing.- 5.5 Pointers to Functions.- 5.6 Pointers to Members.- 5.7 Memory Management.- 5.7.1 Static, Global, Automatic and Member Objects.- 5.7.2 Free Objects.- 5.7.3 Encapsulating Pointers.- 5.8 More Operator Overloading.- 5.8.1 Overloading new, delete.- 5.8.2 PlacementNew.- 5.8.3 Smart Pointers.- 6 User-DefinedTypeConstructors.- 6.1 Function Templates.- 6.1.1 Template Argument Deduction.- 6.1.2 Overloading Function Templates.- 6.1.3 Explicit Specializations of Function Templates.- 6.1.4 A Generic Sort function.- 6.2 Class Templates.- 6.2.1 Friends of Class Templates.- 6.2.2 Nested Class Templates.- 6.2.3 Function Objects.- 6.2.4 Class Template Specialization.- 6.2.5 Reference Counting Pointers.- 6.2.6 Auto Pointers.- 7 Generic Program ming Using the STL.- 7.1 Generic Programming.- 7.2 Iterators.- 7.2.1 Types Associated with an Iterator.- 7.2.2 Iterator Traits.- 7.2.3 Dispatching on the Iterator Category.- 7.3 Stream Iterators.- 7.3.1 Input Stream Iterator.- 7.3.2 Output Stream Iterator.- 7.4 STL Containers.- 7.4.1 Pair.- 7.4.2 List.- 7.4.3 Vector.- 7.4.4 Map.- 7.4.5 Set.- 7.4.6 Other Containers.- 7.4.7 Container Adaptors.- 7.5 STL Algorithms.- 7.5.1 Non-mutating Algorithms.- Finding elements in a ränge.- Finding subranges.- Counting elements in a ränge.- Processing a ränge.- Comparing ranges.- Minimum and maximum.- 7.5.2 Basic Mutating Algorithms.- Copying ranges.- Swapping elements.- Transforming a ränge.- Replacing elements in a ränge.- Filling a ränge.- Removing elements.- Permuting algorithms.- Partitioning ranges.- Random shuffling and sampling.- Generalized numeric algorithms.- 7.5.3 Sorting and Searching.- Sorting ranges.- Operations on sorted ranges.- Set Operations.- Heap Operations.- 7.6 Iterator Adaptors.- 7.6.1 Insert Iterators.- 7.6.2 Reverse Iterators.- 8 Subtypes and Inheritance.- 8.1 Derived Classes.- 8.1.1 Construction and Destruction of Derived Class Objects.- 8.1.2 Inheritance and Scope.- 8.1.3 Inheritance and Conversions.- 8.1.4 Inheritance and Arrays.- 8.2 Virtual Member Functions.- 8.2.1 Implementation of Virtual Member Functions.- 8.2.2 Pure Virtual Function Members and Abstract Classes.- 8.2.3 Virtual Destructors.- 8.3 Derivation and Access Control.- 8.3.1 Protected Members.- 8.3.2 Protected and Private Derivation.- 8.4 Multiple and Virtual Inheritance.- 8.4.1 Multiple Inheritance.- 8.4.2 Implementing Multiple Inheritance.- 8.4.3 Virtual Inheritance.- 8.5 Object-Oriented Programming.- 8.5.1 Class Hierarchies.- 8.5.2 Polymorphism.- 8.6 Run-Time Type Identification.- 9 Exceptions.- 9.1 Throwing and Catching Exceptions.- 9.2 Run-Time Behaviour.- 9.3 Exceptions, Constructors and Destructors.- 9.3.1 Exceptions and Resource Management.- 9.3.2 Constructors Throwing Exceptions.- 9.3.3 Destructors Throwing Exceptions.- 9.4 Exception Specifications.- 9.5 Standard Exceptions.- 10 Iostreams.- 10.1 Requirements.- 10.2 Design.- 10.3 Streambuf.- 10.4 Stream Base Classes.- 10.4.1 los_base.- 10.4.2 Basic_ios(CharT,Traits).- 10.5 Stream Classes.- 10.5.1 Basic_istream(CharT,Traits).- 10.5.2 Basic_ostream(CharT,Traits).- 10.5.3 Basic_iostream(CharT,Traits).- 10.6 Manipulators.- 10.7 File Streams.- 10.7.1 Basic_ifstream(CharT,Traits).- 10.7.2 Basic_ofstream(CharT,Traits).- 10.7.3 Basic_fstream(CharT,Traits).- 10.8 String Streams.- 11 Introduction to Program Design.- 11.1 Motivation: Properties of Good Programs.- 11.2 Abstractions.- 11.3 Criteria For Good Abstractions.- 11.4 The Design Process.- 11.4.1 Finding Abstractions.- 11.4.2 Designing Classes.- 11.4.3 Refactoring.- 11.4.4 Documentation.- 11.4.5 Patterns.- A C++ Operators.- B The String Class.