Perspective
o The Software Crisis
o Building Software Has Been Difficult
o Design Techniques
o Large Software Systems
o Roots Of Object Technology
o What Is Object-Oriented Programming?
o C++ and Object-Oriented Programming
o Why C++?
o Features of C++
o Pros and Cons of C++?
The Language of Object-Orientation
o What Is an Object?
o What Is A Class?
o Encapsulation
o Data Hiding
o The Public Interface
o Relationships Among Classes
o Inheritance
o Polymorphism
o Object-Oriented Design
o Exercises
C vs. C++
o Comments
o Namespaces
o Performing Simple Output
o Performing Simple Input
o Definitions Near To First Use
o Function Prototypes
o Structure Members
o The Reference Type
o Overloading Function Names
o Default Parameters
o The Scope Resolution Operator
o Aggregates
o Operators new and delete
o The bool Data Type
o The string Data Type
o Exercises
Fundamentals of Classes
o Data Types
o User Created Data Types
o Using The Class Concept
o Defining a class
o public and private Access Levels
o The Scope Resolution Operator ::
o public and private Access Levels (again)
o Using class Objects Like Built-in Types
o Scope
o Constructors
o Member Initialization Lists
o Destructors
o Array of Objects
o Pointers
o The this Pointer
o Passing Objects To Functions
o Returning Objects From Functions
o static Class Members
o Exercises
Operator Overloading
o Introduction
o Rules for Operator Overloading
o Rationale for Operator Overloading
o Overloading Member Functions
o Overloading Non-Member Functions
o friend Functions
o The copy Constructor
o The Assignment Operator
o Overloading [ ]
o Overloading Increment and Decrement Operators
o const Objects and References
o Exercises
Inheritance
o Introduction
o Inheritance - public base classes
o The protected Access Level
o Member Initialization Lists
o What Isn’t Inherited?
o Assignments Between Base And Derived Objects
o Compile-Time vs. Run-Time Binding
o virtual Functions
o Polymorphism
o virtual Destructors
o Pure virtual Functions
o Abstract Base Classes
o An Extended Inheritance Example
o Exercises
I/O in C++
o The iostream Library
o Predefined Streams
o operator<<
o Overloading << for User-Defined Classes
o Overloading >> for User-Defined Classes
o Manipulators
o Stream States
o Formatted I/O
o Disk Files
o Internal Transmission of Data
o Reading & Writing Objects
o Exercises
Introduction to the C++ Standard Template Library
o Introduction
o The Standard Template Library
o Design Goals
o STL Components
o Iterators
o Example: vector
o Example: list
o Example: set
o Example: map
o Example: find
o Example: merge
o Example: accumulate
o Function Objects
o Adaptors
o Exercises