| 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
|
|