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

Intermediate C++ 20 Programming | Effective C++ 20 (TTCP2150)

SS Course: GK7390

Course Overview

TOP

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 4 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.

                                                                  

Scheduled Classes

TOP

Outline

TOP
  1. Quick Review of C++
    • Implementing a basic O-O design
    • Implementing Classes
    • Visibility & friends
    • File organization
    • C++ types structs, classes, interfaces, enums
  2. 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
  3. 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
  4. Memory Management
    • The handle/body (Bridge) pattern
    • Using strings effectively
    • Smart Pointers
    • Move constructor in depth
    • Other features
  5. Unit Testing in C++
    • Unit testing - Quick Overview
    • Unit testing in C++
    • Using GTest
  6. 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
  7. Exceptions
    • Review of the basics: try, catch, throw
    • The throws declaration in modern C++
    • Using noexcept
    • Overriding terminate
  8. Operator Overloading & Conversion
    • Basics
    • Essential Operators
    • Conversion Operators
    • Constructor as conversion
    • Explicit vs Implicit conversion
  9. 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
  10. Standard Library
    • Perspective
    • History and Evolution
    • New Features
    • Generic Programming
    • Containers
    • Algorithms
    • Numerics
    • Dates & Times
    • Initializer List
  11. Introduction to Multitasking
    • Threads
    • Tasks
    • Async

    Prerequisites

    TOP

    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-requisite:
    TTCP2100: Introduction to C++ Programming

      Who Should Attend

      TOP

      This is an intermediate level development course designed for developers with prior C++ programming experience. Students without prior C++ programming background are also eligible to enroll in this course provided they take the pre-requisite training.