WA1078 C++ Programming Course Outline
1. Perspective
  • The software crisis
  • Building software has been difficult
  • Design techniques
  • Large Software Systems
  • Roots of Object Orientation
  • What is OO programming?
  • C++ and OO programming
  • Why C++?
  • Features of C++
  • Pros and Cons of C++
2. The Language of Object Orientation
  • What is an object?
  • What is a class?
  • Encapsulation
  • Data hiding
  • The public Interface
  • Relationships among Classes
  • Inheritance
  • Polymorphism
  • Object-Oriented Design
3. C vs C++
  • Comments
  • Namespaces
  • Performing Simple Output
  • Performing Simple Input
  • Definitions near to first Use
  • Function prototypes
  • The inline specifier
  • const
  • Structure Members
  • The reference type
  • Overloading function names
  • Default parameters
  • Scope resolution operator
  • Aggregates
  • Operators new and delete
  • The bool Data Type
  • The string Data Type
4. Fundamentals of Classes
  • Data types
  • Abstract data types
  • Using the class concept
  • How to define a class
  • public and private access levels
  • Using class objects like a built in type
  • scope
  • scope resolution operator
  • Constructors
  • Member Initialization Lists
  • Destructors
  • Array of Objects
  • Pointers
  • The this pointer
  • Passing Objects to Functions
  • Returning Objects from Functions
  • Static class members
5. Operator Overloading
  • Introduction
  • Rules for Operator Overloading
  • Rationale for Operator Overloading
  • Overloading Member Functions
  • Overloading Non-Member Functions
  • friend functions
  • The Copy Constructor
  • Overloading the Assignment Operator
  • Overloading [ ]
  • Overloading increment and decrement operators
  • const Objects & const references
6. Composition of Classes
  • Relationships
  • Composition of Classes
  • The Point class
  • The Line class
  • Member Initialization Lists
  • An Application w/ composition
  • The Copy Constructor under Composition
  • Operator= under Composition
7. Inheritance
  • Introduction
  • Inheritance public base classes
  • Inheritance w/ public base classes
  • Member Initialization Lists
  • What isn't inherited
  • Assignments between base and derived Objects
  • Compile Time Binding vs. Run Time Binding
  • virtual functions
  • Polymorphism
  • virtual destructors
  • Pure virtual functions
  • Abstract base classes
  • An extended inheritance example
8. I/O in C++
  • The iostream library
  • Pre-defined streams
  • operator<<
  • Overloading << for User-Defined Classes
  • Overloading >> for User-Defined Classes
  • Manipulators
  • Stream states
  • Formatted i/o
  • Disk files
  • Internal transmission of data
  • Reading & Writing Objects
9. Advanced Topics
  • Template Functions
  • Template Classes
  • Multiple Inheritance
  • User-Defined Conversions
  • Data Structures
  • Iterators
  • Exceptions
Appendix 1. A Review of C
  • Data Types
  • Operators
  • Decisions
  • Loops
  • switch
  • Arrays
  • Pointers
  • Pointers vs. Arrays
  • Structures
  • enum