Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt

Intermediate C++ 20 Programming | Effective C++ 20

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.

  • Price: $2,495.00
  • Duration: 1 day
  • Delivery Methods: Virtual
Date Time Price Option
12/02/2024 10:00 AM - 06:00 PM CT $2,495.00
02/03/2025 10:00 AM - 06:00 PM CT $2,495.00
04/14/2025 09:00 AM - 05:00 PM CT $2,495.00
06/23/2025 09:00 AM - 05:00 PM CT $2,495.00
08/04/2025 09:00 AM - 05:00 PM CT $2,495.00
10/06/2025 09:00 AM - 05:00 PM CT $2,495.00
12/01/2025 10:00 AM - 06:00 PM CT $2,495.00
For questions call: (469) 721-6100

Why choose
TOPTALENT?

  • Get assistance every step of the way from our Texas-based team, ensuring your training experience is hassle-free and aligned with your goals.
  • Access an expansive range of over 3,000 training courses with a strong focus on Information Technology, Business Applications, and Leadership Development.
  • Have confidence in an exceptional 95% approval rating from our students, reflecting outstanding satisfaction with our course content, program support, and overall customer service.
  • Benefit from being taught by Professionally Certified Instructors with expertise in their fields and a strong commitment to making sure you learn and succeed.

Course Topics / Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We will work with you to tune this course and level of coverage to target the skills you need most. Course agenda, topics and labs are subject to adjust during live delivery in response to student skill level, interests and participation.

  1. Quick Review of C++
  • Implementing a basic O-O design
  • Implementing Classes
  • Visibility & friends
  • File organization
  • C++ types – structs, classes, interfaces, enums
  1. Modern C++
  • New features in C++ 11,14,17,20
  • RAII – Modern memory management in C++ – overview
  • Copy vs Move semantics
  • Namespaces
  • Strings
  • Input & Output
  • Implementing a linked-list – a demonstration of class, memory, pointers and complexity
  1. Templates
  • 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
  • C++ 20 concepts & auto Templates
  1. Memory Management
  • The handle/body (Bridge) pattern
  • Using strings effectively
  • Smart Pointers
  • Move constructor in depth
  • Other <memory> features
  1. Unit Testing in C++
  • Unit testing – Quick Overview
  • Unit testing in C++
  • Using GTest
  1. Inheritance and Polymorphism
  • Inheritance Concept
  • Inheritance in C++
  • Virtual Function Specification
  • Invoking Virtual Functions
  • VTable
  • Virtual Destructors
  • Abstract Class Using Pure Virtual Function
  • Design for Polymorphism
  • Interfaces
  • Design for Interface
  • A SOLID introduction
  1. Exceptions
  • Review of the basics: try, catch, throw
  • The throws declaration in modern C++
  • Using noexcept
  • Overriding terminate
  1. Operator Overloading & Conversion
  • Basics
  • Essential Operators
  • Conversion Operators
  • Constructor as conversion
  • Explicit vs Implicit conversion
  1. Functional Programming
  • 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. Standard Library
  • Perspective
  • History and Evolution
  • New Features
  • Generic Programming
  • Containers
  • Algorithms
  • Numerics
  • Dates & Times
  • Initializer List
  1. Introduction to Multitasking
  • Threads
  • Tasks
  • Async

Learning Objectives

Working in a hands-on learning environment, guided by our expert team you’ll learn to:

  • Master intermediate to advanced C++ 20 programming techniques, enabling the development of efficient and maintainable applications using the latest features and best practices.
  • Acquire in-depth knowledge of memory management in C++, including the handle/body pattern, smart pointers, and move constructors, to optimize performance and minimize memory-related issues.
  • Develop proficiency in functional programming with C++, incorporating concepts such as dependency injection, functors, and lambda expressions to enhance code flexibility and modularity.
  • Gain expertise in utilizing the C++ Standard Library for generic programming, mastering the use of containers, algorithms, numerics, and other features to create powerful, reusable code components.
  • Learn to implement effective unit testing in C++ using GTest, ensuring the reliability and robustness of your applications through rigorous testing methodologies.
  • Understand the basics of multitasking in C++, exploring threads, tasks, and async for concurrent programming, empowering developers to create scalable and high-performance applications.

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

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
Ten (10) business days’ notice is required to reschedule a class with no additional fees. Notify TOPTALENT LEARNING as soon as possible at 469-721-6100 or by written notification to info@toptalentlearning.com to avoid rescheduling penalties.
Please contact our team at 469-721-6100; we will gladly guide you through the online purchasing process.
You will receive a receipt and an enrollment confirmation sent to the email you submitted at purchase. Your enrollment email will have instructions on how to access the class. Any additional questions our team is here to support you. Please call us at 469-721-6100.
If a student is 15 minutes late, they risk losing their seat to a standby student. If a student is 30 minutes late or more, they will need to reschedule. A no-show fee will apply. Retakes are enrolled on a stand-by basis. The student must supply previously issued courseware. Additional fees may apply.
You will receive a ‘Certificate of Completion’ once you complete the class. If you purchased an exam voucher for the class, a team member from TOPTALENT LEARNING will reach out to discuss your readiness for the voucher and make arrangements to send it.