Toll Free 1800-123-321-5

Advanced C++ Programming

IIHT’s Advanced C++ training program will introduce learners to advanced topics and trends in C++ like creating templates, working with exception handling, stream input/output management, associative containers, algorithms, stacks, queues and binary trees & more. Upon completing the course learner will have an in-depth understanding of how advanced programming techniques and methodologies can be applied to meet varying needs in software development.
Print Friendly, PDF & Email

Course Content

Template Functions and Classes

  • Instantiation
  • Overloading
  • Specialization

Working with Templates

  • Member Templates
  • Using export

STL (Standard Template Library)

  • Containers and Iterators
  • Algorithms

Using Exceptions

  • Exception Formats
  • Exception Specifications
  • Unexpected Exceptions
  • Uncaught Exceptions

Designing with Exceptions

  • Exception Hierarchies
  • Discrimination
  • Using auto_ptr
  • Exceptions thrown from Constructors
  • Exceptions thrown from Destructors
  • Resource Management

Class Design Topics

  • Mutable Data Members
  • Using explicit with Constructors
  • Member Initialization

Class Design Boilerplate

  • Copy Initialization and Assignment
  • Modifiers and Selectors
  • Clone Functions

Composite Templates


New and Delete Formats


  • Nothrow Operator new
  • Placement Formats
  • Explicit Destructor Calls


Class Specific New and Delete

  • Overriding Global Operators
  • Memory Pools

Reference Counts

  • Design Approach
  • Implementation
  • Copy-on-writes
  • Modifying Existing Classes


  • Implications for Class Library Design
  • Controlling Object Behaviors

RTTI Operators

  • dynamic_cast
  • typeid
  • type_info Class

Design Concepts

  • Member Initialization
  • Ambiguities

Multiple Inheritance Patterns

  • Distinct Bases
  • Multiple Inclusion
  • Virtual Bases


  • Namespace Definitions
  • Unnamed Namespaces
  • Using Directives
  • Using Declarations
  • Namespace Aliases

C++ Techniques

  • Objects as Return Values
  • Eliminating Temporaries
  • Virtual Constructors
  • Smart Pointers
  • Lvalue and Rvalue Separation