Intermediate C++ Programming

Request more details:

Description:
This 5 day course broadens the skills of a C++ language programmer by examining sophisticated C++ concepts such as templates, exceptions, memory management, advanced inheritance issues, disambiguation of overloaded functions, private and protected inheritance, binary I/O and class libraries.
Prerequisites:
Students should have completed an introductory C++ programming course or has had equivalent knowledge.
What you should already know A Review:
Rationale for a New Programming Language
The Language of Object-Orientation
A Typical C++ Class
Issues Regarding Member Functions vs. Non-Member Functions
friend or non-friend
Functions Returning References
Relationships
Initialization Lists
Inheritance in C++
Access Levels
Simple C++ I/O
The Many Uses of const
Parameterized Types - Templates:
Templates
Overloading Functions
Template Functions
Specializing a Template Function
Disambiguation under Specialization
Template Classes
Instantiating a Template Class Object
Rules for Template Classes
A Non-Member Function with a Template Argument
Friends of Template Classes
Templates with Multiple Type Parameters
Relationships of All Kinds:
Uses of Member Initialization Lists
Initialization Lists under Composition
Initialization Lists under Inheritance
Efficiency
Dynamic Memory Allocation
operator= and Composition
Constructors and Composition
What is Not Inherited?
Summary - Constructors and operator=
Public Inheritance
virtual Functions
A Shape Class Hierarchy
Polymorphism
Pure Virtual Functions
Abstract Base Classes
Private Inheritance
"Using" Relationships
Associations
Multiple Inheritance:
Multiple Inheritance
Ambiguities
virtual Base Classes
The Dominance Rule
Multiple Inheritance and Composition
operator=
Data Structures:
Introduction
A Simple List
Layering Type-safe Classes Upon List
A Template List Class
Iterators
A Template Iterator
Stack and Queue Classes
Templates and Inheritance
Function Pointers:
Why Have Function Pointers?
Passing Functions as Arguments
Registering Functions
Function Pointers in C++
Callback Functions
A Class with a Callback Object
Registration of Exception Handlers
Exceptions:
What Are Exceptions?
Traditional Approaches to Error Handling
try, catch, and throw
A Simple Exception Handler
Multiple catch Blocks
The Exception Specification List
Re-throwing an Exception
Cleanup
Exception Matching
Inheritance and Exceptions
Resource Allocation
Constructors and Exceptions
Destructors and Exceptions
Catch by Reference
The C++ Standard Template Library:
Introduction
The Standard Template Library
Design Goals
STL Components
Iterators
vector
list
set
map
find
merge
accumulate
Adaptors
Disambiguation:
Conversion
int Conversion
float and double Conversions
Arithmetic and Pointer Conversion
Inheritance Based Conversion
Overloaded Functions
Exact Match
Match with Promotion
Match with Standard Conversion
User Defined Conversion
Constructors as Conversion Operators
Ambiguities
10: I/O:
Introduction
Manipulators
Writing Your Own Manipulators
Overloading the I/O Operators
Disk Files
Reading and Writing Objects
Internal Transmission of Data
A Spell Checker
Handling Streams in Constructors and Destructors
Treating a File as an Array
Miscellaneous Topics:
Namespaces
Reference Counts
RTTI
Casts
Having a Limited Number of Objects
Smart Pointers