Intermediate C++ 20 Programming / Effective C++

Unlock lucrative career opportunities with our Intermediate C++ 20 Programming course, designed for experienced developers to master high-efficiency memory management, modern C++ features, and robust application development.

Course Thumbnail

Essential Skills Gained

Checkmark

Master intermediate to advanced C++ 20 programming techniques.

Checkmark

Optimize performance through efficient memory management strategies.

Checkmark

Enhance code flexibility with functional programming practices.

Checkmark

Utilize the C++ Standard Library for powerful, reusable components.

Format

  • Instructor-led
  • 4 days with lectures and hands-on labs.

Audience

  • Experienced C++ Developers
  • Software Engineers
  • System Programmers
  • Game Developers

Description

C++ is a powerful, high-performance programming language that offers an ideal blend of low-level memory manipulation and high-level abstraction capabilities. Learning C++ is a valuable investment for developers, as it opens the door to creating efficient, versatile, and complex applications that run on a variety of platforms. Modern companies across diverse industries – including finance, gaming, automotive, and telecommunications – rely on C++ for developing performance-critical applications, system software, and embedded systems. Renowned organizations like Google, Facebook, and Microsoft continue to leverage the power of C++ in their development practices, solidifying its status as a crucial skill for developers seeking lucrative and challenging career opportunities. Geared for experienced C++ developers, Intermediate C++ 20 / Effective C++ 20 is a four day, hands-on program that dives covers a broad spectrum of topics – from the quick review of C++ essentials to modern C++ features, memory management, unit testing, and more. Our expert instructors will walk you through a comprehensive journey, investigating cutting-edge concepts such as RAII, copy and move semantics, namespaces, templates, and C++ 20 Concepts & auto Templates. You'll learn to leverage the power of modern C++ and unravel the intricacies of memory management, including the handle/body pattern, smart pointers, and move constructors. By the end of this course, you'll have an in-depth understanding of C++ memory, pointers, and complexity. Working in a hands-on environment, explore the art of functional programming and discover how the IoC pattern, dependency injection, functors, and lambda expressions can bring about significant enhancements to your code. With a strong emphasis on SOLID principles, inheritance, polymorphism, exceptions, and operator overloading, this course will help you design robust, maintainable, and scalable modern applications. You’ll also expand your C++ toolset by exploring the rich offerings of the Standard Library, mastering the essentials of containers, algorithms, numerics, dates, and times. Gain a solid introduction to multitasking with threads, tasks, and async. As a bonus, you'll also learn how to implement effective unit testing in C++ using GTest, ensuring your code is reliable and bug-free. Join our immersive training experience and become an adept C++ developer with unparalleled skills in the latest C++ 20 programming techniques. This fast-paced, lab-intensive course is designed to equip you with the knowledge and confidence to tackle the most challenging C++ development projects.

Calendar icon

Upcoming Course Dates

August 4-7, 2025

10:00 AM - 6:00 PM

Virtual: Online - US/Eastern

Enroll

$2595

August 4-7, 2025

10:00 AM - 6:00 PM

Virtual: Online - US/Eastern

Enroll

$2595

October 6-9, 2025

10:00 AM - 6:00 PM

Virtual: Online - US/Eastern

Enroll

$2595

Course Outline

Download PDF

Quick Review of C++

  1. Implementing a basic O-O design

  2. Implementing Classes

  3. Visibility & friends

  4. File organization

  5. C++ types – structs, classes, interfaces, enums

Modern C++

  1. New features in C++ 11,14,17,20

  2. RAII - Modern memory management

  3. Copy vs Move semantics

  4. Namespaces

  5. Strings

  6. Input & Output

  7. Implementing a linked-list

Templates

  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. C++ 20 concepts & auto Templates

Memory Management

  1. The handle/body (Bridge) pattern

  2. Using strings effectively

  3. Smart Pointers

  4. Move constructor in depth

  5. Other features

Unit Testing in C++

  1. Unit testing – Quick Overview

  2. Unit testing in C++

  3. Using GTest

Inheritance and Polymorphism

  1. Inheritance Concept

  2. Inheritance in C++

  3. Virtual Function Specification

  4. Invoking Virtual Functions

  5. VTable

  6. Virtual Destructors

  7. Abstract Class Using Pure Virtual Function

  8. Design for Polymorphism

  9. Interfaces

  10. Design for Interface

  11. A SOLID introduction

Exceptions

  1. Review of the basics: try, catch, throw

  2. The throws declaration in modern C++

  3. Using noexcept

  4. Overriding terminate

Operator Overloading & Conversion

  1. Basics

  2. Essential Operators

  3. Conversion Operators

  4. Constructor as conversion

  5. Explicit vs Implicit conversion

Functional Programming

  1. The IoC pattern

  2. Dependency Injection

  3. Functions as objects

  4. IoC via interface

  5. Functors

  6. IoC with Functors

  7. Implementing Functors

  8. Function Pointers

  9. IoC with Function Pointers

  10. Lambda Expressions

  11. Lambda Syntax

  12. IoC with Lambdas

Standard Library

  1. Perspective

  2. History and Evolution

  3. New Features

  4. Generic Programming

  5. Containers

  6. Algorithms

  7. Numerics

  8. Dates & Times

  9. Initializer List

Introduction to Multitasking

  1. Threads

  2. Tasks

  3. Async

Your Team has Unique Training Needs.

Your team deserves training as unique as they are.

Let us tailor the course to your needs at no extra cost.