Skip to content
Search upcoming classes
Course Name
Location
Date
Price
Register
Get $250 OFF select training courses for a limited time with code CPL250.*
*Offer available until 12/31/2020. Some exclusions apply. Not valid for eLearnings, SAFe®, or Scrum Certification courses.

Advanced C++ Programming (Modern Advanced C++)

Prepare yourself with the skills to put advanced C++ programming skills right to work in a practical environment, using sound coding techniques and best practices.

Advanced C++ Programming (Modern Advanced C++) is a lab-intensive, hands-on C++ training course geared for experienced C++ programmers who wish to take their development skills to the next level.  

This comprehensive course consists of three modules. A preliminary module reviews topics, including inheritance, the ANSI C++ Standard Library, templates. I/O streams, and practical issues of C++ programming, such as reliability & testing. This material is covered as needed depending on the background of the students.

The second module covers more advanced topics.  Unit testing, advanced inheritance & polymorphism are discussed.  Memory management along with move constructors and RAII are explored.  Templates and generic programming are explored including lambda expressions and functors.  The third module is a deep dive into  the Standard C++ Library.  Containers, Algorithms, Threads and much more.

Throughout the course, new features of modern C++ (version 11 and beyond) are introduced as well as the impact on programming style.  These new features include smart pointers, move constructors, functional programming and lambda expressions.

 

Available formats for this course
In-Person
Live Online
Corporate
Corporate Online
Duration
5 days/40 hours of instruction
Pricing

Starting at: $2495

GSA Price: $1870

Group Rate: $2395

Part 1: Overview/Review of C++

  1. Implementing a basic O-O design
  2. Implementing Classes

Part 2: Modern C++

  1. New keywords in C++ 11,14,17
  2. RAII – Modern memory management in C++ – overview
  3. Copy vs Move semantics
  4. Namespaces

Part 3: Generic Programming

  1. General Purpose Functions
  2. Function Templates
  3. Template Parameters
  4. Template Parameter Conversion
  5. Function Template Problem
  6. Generic Programming
  7. General Purpose Classes
  8. Class Templates
  9. Class Template Instantiation
  10. Non Type Parameter
  11. C++ Containers overview
  12. Variadic Templates

Part 4: Memory Management

  1. The handle/body (Bridge) pattern
  2. Using strings effectively
  3. Smart Pointers
  4. Move constructor in depth
  5. Other <memory> features

Part 5: Inheritance and Polymorphism

  1. Base Class Initializer List
  2. Composition
  3. Member Initialization List
  4. Order of Initialization
  5. Inheritance vs. Composition
  6. Interfaces
  7. Polymorphism
  8. Chaining Constructors
  9. Inheriting Constructors

Part 6: Exception Handling

  1. Exception Handling
  2. try and catch
  3. Exception Flow of Control
  4. Context and Stack Unwinding
  5. Handling Exceptions in best Context
  6. Benefits of Exception Handling
  7. Unhandled Exceptions
  8. Clean Up
  9. Multiple Catch Handlers

Part 7: Operator Overloading

  1. What is overloadable?
  2. Why overload operators?
  3. Functors

Part 8: Unit Testing in C++

  1. Unit testing – Quick Overview
  2. Unit testing in C++
  3. Introduction <catch.hpp>

Part 9: Functional Programming

  1. Overview
  2. The IoC pattern
  3. Dependency Injection
  4. Functions as objects
  5. IoC via interface
  6. Functors
  7. IoC with Functors
  8. Implementing Functors
  9. Function Pointers
  10. IoC with Function Pointers
  11. Lambda Expressions
  12. Lambda Syntax
  13. IoC with Lambdas

Part 10: Runtime Type Information

  1. Runtime Type and Polymorphism
  2. type_info Class
  3. typeid Operator
  4. Compiler Options
  5. Safe Pointer Conversions
  6. Dynamic Cast
  7. New C++ Style Casts
  8. Static Cast
  9. Reinterpret Cast
  10. Const Cast

Part 11: STL Containers

  1. Vectors
  2. Vector.cpp
  3. Vector Operations
  4. Typedefs
  5. Deques
  6. deque as Stack
  7. deque Functionality
  8. Lists
  9. Generic Programming
  10. Tradeoff with Lists
  11. List Memory Allocation
  12. list Functionality
  13. Associate Containers
  14. Sets
  15. Sets with User Defined Objects
  16. Multisets (Bags)
  17. Maps
  18. Multimaps
  19. Functional Programming with Containers

Part 12: STL Iterators

  1. Pointers
  2. Template Version
  3. String Version
  4. A Generalization of Pointers
  5. STL Iterators
  6. Input Iterators
  7. Output Iterators
  8. Forward Iterators
  9. Bidirectional Iterators
  10. Random Access Iterators

Part 13: Threads & Tasks

  1. Overview Threads
  2. Starting Threads
  3. Managing threads
  4. Overview of Tasks
  5. Tasks
  6. async
  7. Future & Promise

This an intermediate and beyond-level programming course, designed for:

  • Experienced C++ developers. 
  • This course is not recommended for developers new to C++ programming.

  • C++ Fundamentals Refresher
  • Modern C++
  • Generic Programming
  • Memory Management
  • Inheritance and Polymorphism
  • Unit Testing in C++
  • Functional Programming
  • STL Containers
  • STL Iterators
  • Threads & Tasks

Advanced C++ Programming (Modern Advanced C++) Schedule

Location
Date
Price
Register
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VOtwiQAD', 'startDate' => '2021-02-16', 'startTime' => '10:00 AM', 'endDate' => '2021-02-19', 'endTime' => '6:00 PM', 'name' => 'TTC31003VCL', 'standardCourseFee' => 2495.0, 'courseId' => 'TTC3100', 'course' => 'a001G00000CCXYbQAP', 'courseSfId' => 'a001G00000CCXYbQAP', 'courseName' => 'Advanced C++ Programming (Modern Advanced C++)', 'instructorId' => '151136', 'instructorSfId' => 'a023700000Z1UwcAAF', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBVQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), 'fullFacilityAddress' => 'Live Instructor-Led Online Training
Please call Cprime for location details
at 1-877-800-5221
,', ))
Live, Online Training
Feb 16th - 19th 10:00 AM - 6:00 PM ET
$2495
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VOtwjQAD', 'startDate' => '2021-04-13', 'startTime' => '10:00 AM', 'endDate' => '2021-04-16', 'endTime' => '6:00 PM', 'name' => 'TTC31004VCL', 'standardCourseFee' => 2495.0, 'courseId' => 'TTC3100', 'course' => 'a001G00000CCXYbQAP', 'courseSfId' => 'a001G00000CCXYbQAP', 'courseName' => 'Advanced C++ Programming (Modern Advanced C++)', 'instructorId' => '151136', 'instructorSfId' => 'a023700000Z1UwcAAF', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBVQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), 'fullFacilityAddress' => 'Live Instructor-Led Online Training
Please call Cprime for location details
at 1-877-800-5221
,', ))
Live, Online Training
Apr 13th - 16th 10:00 AM - 6:00 PM ET
$2495
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VOtwkQAD', 'startDate' => '2021-06-15', 'startTime' => '10:00 AM', 'endDate' => '2021-06-18', 'endTime' => '6:00 PM', 'name' => 'TTC31004VCL02', 'standardCourseFee' => 2495.0, 'courseId' => 'TTC3100', 'course' => 'a001G00000CCXYbQAP', 'courseSfId' => 'a001G00000CCXYbQAP', 'courseName' => 'Advanced C++ Programming (Modern Advanced C++)', 'instructorId' => '151136', 'instructorSfId' => 'a023700000Z1UwcAAF', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBVQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), 'fullFacilityAddress' => 'Live Instructor-Led Online Training
Please call Cprime for location details
at 1-877-800-5221
,', ))
Live, Online Training
Jun 15th - 18th 10:00 AM - 6:00 PM ET
$2495
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VOtwlQAD', 'startDate' => '2021-08-17', 'startTime' => '10:00 AM', 'endDate' => '2021-08-20', 'endTime' => '6:00 PM', 'name' => 'TTC31005VCL', 'standardCourseFee' => 2495.0, 'courseId' => 'TTC3100', 'course' => 'a001G00000CCXYbQAP', 'courseSfId' => 'a001G00000CCXYbQAP', 'courseName' => 'Advanced C++ Programming (Modern Advanced C++)', 'instructorId' => '151136', 'instructorSfId' => 'a023700000Z1UwcAAF', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBVQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), 'fullFacilityAddress' => 'Live Instructor-Led Online Training
Please call Cprime for location details
at 1-877-800-5221
,', ))
Live, Online Training
Aug 17th - 20th 10:00 AM - 6:00 PM ET
$2495
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VOtwmQAD', 'startDate' => '2021-10-19', 'startTime' => '10:00 AM', 'endDate' => '2021-10-22', 'endTime' => '6:00 PM', 'name' => 'TTC31006VCL', 'standardCourseFee' => 2495.0, 'courseId' => 'TTC3100', 'course' => 'a001G00000CCXYbQAP', 'courseSfId' => 'a001G00000CCXYbQAP', 'courseName' => 'Advanced C++ Programming (Modern Advanced C++)', 'instructorId' => '151136', 'instructorSfId' => 'a023700000Z1UwcAAF', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBVQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), 'fullFacilityAddress' => 'Live Instructor-Led Online Training
Please call Cprime for location details
at 1-877-800-5221
,', ))
Live, Online Training
Oct 19th - 22nd 10:00 AM - 6:00 PM ET
$2495
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VOtwnQAD', 'startDate' => '2021-12-07', 'startTime' => '10:00 AM', 'endDate' => '2021-12-10', 'endTime' => '6:00 PM', 'name' => 'TTC31006VCL02', 'standardCourseFee' => 2495.0, 'courseId' => 'TTC3100', 'course' => 'a001G00000CCXYbQAP', 'courseSfId' => 'a001G00000CCXYbQAP', 'courseName' => 'Advanced C++ Programming (Modern Advanced C++)', 'instructorId' => '151136', 'instructorSfId' => 'a023700000Z1UwcAAF', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBVQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), 'fullFacilityAddress' => 'Live Instructor-Led Online Training
Please call Cprime for location details
at 1-877-800-5221
,', ))
Live, Online Training
Dec 7th - 10th 10:00 AM - 6:00 PM ET
$2495

Learn more about corporate team training