Advanced C++ Programming


This custom, four-day course consists of two modules. The first module covers more advanced topics. Advanced issues of inheritance and polymorphism are covered. The course covers exception handling and runtime type information (RTTI). Multiple inheritance is covered, including the complications that are introduced by this powerful feature. Advanced applications of C++ concepts are studied, including smart pointers and reference counting. The second module introduces the Standard Template Library (STL).

Audience: Experienced C++ programmers who wish to deepen their understanding of the language and learn advanced techniques.

Prerequisites: Substantial C++ programming experience.

Number of Days: 4 days

Course Outline

1. Advanced Polymorphism and Inheritance

  • Orthodox Canonical Form
  • Public, Private and Protected Inheritance
  • Composition vs. Inheritance
  • Templates vs. Inheritance
  • Interface Encapsulation


2. Exception Handling

  • C++ Exception Mechanism
  • Exceptions Compared to Other Error Handling Techniques
  • throw, try and catch
  • Exception Context and Stack Unwinding
  • Uncaught Exceptions
  • Automatic Cleanup in Exception Handling


3. Runtime Type Information

  • Runtime Type Information (RTTI) Mechanism
  • type_info Class and typeid Operator
  • Type Safe Pointer Conversion
  • New C++ Cast Syntax


4. Inheritance Hierarchies and Multiple Inheritance

  • Smalltalk Style Class Hierarchies
  • Collection Classes in Object-Based Hierarchies
  • Independent Class Hierarchies in C++
  • Multiple Inheritance
  • Resolving Ambiguities
  • Duplicate Subobjects
  • Virtual Base Classes
  • RTTI in Multiple Inheritance


5. Applications of C++ Concepts

  • Object Validation
  • Smart Pointers
  • Reference Counting
  • Generic Smart Pointers


6. An Overview of Templates

  • Templates
  • Overloading Functions
  • Template Functions
  • Specializing a Template Function
  • Disambiguation under Specialization
  • Template Classes
  • An array template class
  • Instantiating a template class object
  • Rules for templates
  • Non-member function with a template argument
  • Friends of template classes
  • Templates with multiple type parameters
  • Non type parameters for template classes
  • Comments regarding templates


7. Overview of the Standard Template Library

  • Perspective
  • History and Evolution
  • New Features in C++
  • The Standard Template Library
  • Design Goals
  • Header Files
  • STL Components
  • Containers
  • Algorithms
  • Iterators


8. Examples from STL

  • Example: vectors, lists
  • Example: maps
  • Example: sets
  • Example: multiset
  • Example: find with a vector
  • Example: find with a list
  • Example: merge
  • Iterators
  • Function objects
  • Adaptors


9. STL Containers

  • Vector
  • Deque
  • List
  • The beauty of STL
  • Associative Containers
  • Set
  • Multiset
  • Map
  • Multimap


10. STL Iterators

  • Input Iterators
  • Output Iterators
  • Forward Iterators
  • Backward Iterators

To Hire a proven C++ Programming Subject Matter Expert Consultant / Course Author and Instructor who teaches this class, call 800-798-3901 today!

Leave a Reply