logo


your one source for IT & AV

Training Presentation Systems Services & Consulting Cloud Services Purchase Client Center Computer Museum
Arrow Course Schedule | Classroom Rentals | Student Information | Free Seminars | Client Feedback | Partners | Survey | Standby Discounts

Advanced C++ Programming | Modern C++

SS Course: 2001628

Course Overview

TOP

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.  Students will leave this course armed with the required skills to put advanced C++ programming skills right to work in a practical environment, using sound coding techniques and best practices.

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.

                                                                  

Scheduled Classes

TOP
04/17/24 - TTV - Virtual-Instructor Led - Virtual-Instructor Led (click to enroll)
06/26/24 - TTV - Virtual-Instructor Led - Virtual-Instructor Led (click to enroll)
08/21/24 - TTV - Virtual-Instructor Led - Virtual-Instructor Led (click to enroll)
10/09/24 - TTV - Virtual-Instructor Led - Virtual-Instructor Led (click to enroll)
12/11/24 - TTV - Virtual-Instructor Led - Virtual-Instructor Led (click to enroll)

What You'll Learn

TOP

This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in basic coding with C++, coupling the most current, effective techniques with the soundest industry practices. Working in a hands-on learning environment, guided by our expert team, attendees will explore:

  • Modern C++
  • Generic Programming
  • Memory Management
  • Inheritance and Polymorphism
  • Exception Handling
  • Operator Overloading
  • Unit Testing in C++
  • Functional Programming
  • Runtime Type Information
  • STL Containers
  • STL Iterators
  • Threads & Tasks

Outline

TOP
Viewing outline for:
  1. Modern C++
  • New keywords in C++ 11,14,17
  • RAII - Modern memory management in C++ - overview
  • Copy vs Move semantics
  • Namespaces
  1. Generic Programming
  • General Purpose Functions
  • Function Templates
  • Template Parameters
  • Template Parameter Conversion
  • Function Template Problem
  • Generic Programming
  • General Purpose Classes
  • Class Templates
  • Class Template Instantiation
  • Non-Type Parameter
  • C++ Containers overview
  • Variadic Templates
  1. Memory Management
  • The handle/body (Bridge) pattern
  • Using strings effectively
  • Smart Pointers
  • Move constructor in depth
  • Other features
  1. Inheritance and Polymorphism
  • Base Class Initializer List
  • Composition
  • Member Initialization List
  • Order of Initialization
  • Inheritance vs. Composition
  • Interfaces
  • Polymorphism
  • Chaining Constructors
  • Inheriting Constructors
  1. Exception Handling
  • Exception Handling
  • try and catch
  • Exception Flow of Control
  • Context and Stack Unwinding
  • Handling Exceptions in best Context
  • Benefits of Exception Handling
  • Unhandled Exceptions
  • Clean Up
  • Multiple Catch Handlers
  1. Operator Overloading
  • What is overloadable?
  • Why overload operators?
  • Functors
  1. Unit Testing in C++
  • Unit testing – Quick Overview
  • Unit testing in C++
  • Introduction
  1. Functional Programming
  • Overview
  • The IoC pattern
  • Dependency Injection
  • Functions as objects
  • IoC via interface
  • Functors
  • IoC with Functors
  • Implementing Functors
  • Function Pointers
  • IoC with Function Pointers
  • Lambda Expressions
  • Lambda Syntax
  • IoC with Lambdas
  1. Runtime Type Information
  • Runtime Type and Polymorphism
  • type_info Class
  • typeid Operator
  • Compiler Options
  • Safe Pointer Conversions
  • Dynamic Cast
  • New C++ Style Casts
  • Static Cast
  • Reinterpret Cast
  • Const Cast
  1. STL Containers
  • Vectors
  • Vector.cpp
  • Vector Operations
  • Typedefs
  • Deques
  • deque as Stack
  • deque Functionality
  • Lists
  • Generic Programming
  • Tradeoff with Lists
  • List Memory Allocation
  • list Functionality
  • Associate Containers
  • Sets
  • Sets with User Defined Objects
  • Multisets (Bags)
  • Maps
  • Multimaps
  • Functional Programming with Containers
  1. STL Iterators
  • Pointers
  • Template Version
  • String Version
  • A Generalization of Pointers
  • STL Iterators
  • Input Iterators
  • Output Iterators
  • Forward Iterators
  • Bidirectional Iterators
  • Random Access Iterators
  1. Threads & Tasks
  • Overview Threads
  • Starting Threads
  • Managing threads
  • Overview of Tasks
  • Tasks
  • async

Prerequisites

TOP

Incoming students should have practical skills equivalent to the topics in, or should have recently attended, one of these courses as a pre-reqsuite:

  • Introduction to C++ Programming

    Who Should Attend

    TOP

    This is an intermediate and beyond level development course designed for developers with prior C++ programming experience.  Students without prior C++ programming background should take the pre-requisite training.

    Next Step Courses

    TOP