| |
| |
| |
A Quick Tour of C++ | |
| |
| |
Preview | |
| |
| |
First Example | |
| |
| |
Basic Constructs | |
| |
| |
Inheritance | |
| |
| |
Exceptions and Namespaces | |
| |
| |
Generic Programming | |
| |
| |
Second Example: Arithmetic Expressions | |
| |
| |
Version I | |
| |
| |
Version II | |
| |
| |
| |
Procedural Programming | |
| |
| |
Preview | |
| |
| |
Introduction to Principles of Software Design and Implementation | |
| |
| |
Main Program | |
| |
| |
Basics: Types, Control Structures and Simple I/O | |
| |
| |
Functions | |
| |
| |
Pointers and Dynamic Memory Management | |
| |
| |
Static Local Variables | |
| |
| |
File Organization and Standard Facilities | |
| |
| |
Exercises | |
| |
| |
| |
Object-Based Programming, Part I | |
| |
| |
Preview | |
| |
| |
Basic Terminology and Class Definition | |
| |
| |
Exception Handling | |
| |
| |
Managing Objects | |
| |
| |
Constant and Static Features | |
| |
| |
Pure Static Classes | |
| |
| |
Initialization of Local and Global Variables | |
| |
| |
Reference Types and Their Applications | |
| |
| |
Resources Management | |
| |
| |
| |
The Use of Constructors, Assignment Operator and Destructor | |
| |
| |
Arrays | |
| |
| |
Exercises | |
| |
| |
| |
Object-Based Programming, Part II | |
| |
| |
Preview | |
| |
| |
UML Class Notations | |
| |
| |
Reusability through Object Composition | |
| |
| |
Managing the Creational Process, Part I | |
| |
| |
First Design Pattern: Singleton | |
| |
| |
Namespaces, Part II | |
| |
| |
Need for Recompiling and Header Files, Part I | |
| |
| |
Application: List of Students | |
| |
| |
Exercises | |
| |
| |
| |
Object-Oriented Programming, Part I | |
| |
| |
Preview | |
| |
| |
Basic Terminology and a Derived Class Definition | |
| |
| |
Public Inheritance | |
| |
| |
Creating Objects | |
| |
| |
RTTI and Type Conversions | |
| |
| |
Copy Constructors | |
| |
| |
Scope and Visibility Modifiers | |
| |
| |
Polymorphism and Virtual Functions | |
| |
| |
Destructing Objects | |
| |
| |
Overloaded Assignments | |
| |
| |
Overloading and Overriding | |
| |
| |
Passing Arguments by Value and by Reference | |
| |
| |
Standard Exceptions | |
| |
| |
Resource Management, Part II | |
| |
| |
Abstract Operations and Classes | |
| |
| |
Friends | |
| |
| |
Exercises | |
| |
| |
| |
Object-Oriented Programming, Part II | |
| |
| |
Preview | |
| |
| |
Managing the Creational Process | |
| |
| |
| |
Abstract Factory Design Pattern | |
| |
| |
Private Inheritance | |
| |
| |
Protected Inheritance | |
| |
| |
Revisiting Inheritance | |
| |
| |
Programming to an Interface | |
| |
| |
Application of Design Patterns: Arithmetic Expressions | |
| |
| |
Exercises | |
| |
| |
| |
Introduction to Generic Programming: Parameterized Types | |
| |
| |
Preview | |
| |
| |
Introduction | |
| |
| |
Overloaded Operators | |
| |
| |
Proxy Design Pattern | |
| |
| |
Designing Iterators | |
| |
| |
Templates | |
| |
| |
Resource Management, Part III | |
| |
| |
Inheritance and Delegation versus Parameterized Types | |
| |
| |
Applications of Templates to Design Patterns | |
| |
| |
Exercises | |
| |
| |
| |
Generic Programming Using STL | |
| |
| |
Preview | |
| |
| |
Introduction | |
| |
| |
Introduction to Iterators and Containers | |
| |
| |
Iterators, Part I | |
| |
| |
Making Algorithms Generic | |
| |
| |
Generic Algorithms | |
| |
| |
Containers and Their Common Types and Operations | |
| |
| |
Iterators, Part II | |
| |
| |
Sequence Operations | |
| |
| |
Associative Containers: Sets, Maps, Multisets and Multimaps | |
| |
| |
STL and Error Handling | |
| |
| |
Reference Counting and STL Containers | |
| |
| |
Exercises | |
| |
| |
| |
Miscellaneous Topics | |
| |
| |
Preview | |
| |
| |
Input/Output Library | |
| |
| |
Separate Compilatilation and Linkage | |
| |
| |
Generic Pointers and Pointers to Functions | |
| |
| |
Overloading Memory Management | |
| |
| |
Debugging and Handling Errors | |
| |
| |
Type ID | |
| |
| |
Multiple Inheritance | |
| |
| |
Pointers to Members and Function Adapters | |
| |
| |
Heterogeneous Containers and Composite and Visitor Design Patterns | |
| |
| |
Exercises | |
| |
| |
Appendices | |
| |
| |
| |
The List of Tables, Figures and Examples | |
| |
| |
| |
The List of Idioms, Patterns and Concepts | |
| |
| |
| |
The List of C++ Keywords | |
| |
| |
| |
Numeric Types | |
| |
| |
| |
Strings Operations | |
| |
| |
| |
The List of Generic Algorithms | |
| |
| |
| |