Facebook

Intermediate C++ 20 Programming

* Looking for a flexible schedule (after hours or weekends)? Please call 858-208-4141 or email us:  sales@ccslearningacademy.com.

Student financing options are available.

Transitioning military and Veterans, please contact us to sign up for a free consultation on training and hiring options.

Looking for group training? Contact Us

gowranga
Last Update September 16, 2024
0 already enrolled

About This Course

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.

Course Outline

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

Learning Objectives

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, numeric, 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.

Pre-requisites

  • Students should have practical knowledge of C++ programming or equivalent to this,TTCP2100: Introduction to C++ Programming, course.

Target Audience

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

Your Instructors

gowranga

0/5
64 Courses
0 Reviews
0 Students
See more

Write a review

Don't have an account yet? Sign up for free

#edumall-wp-widget-courses-1 { display: none; } #single-course-ratings { display: none; } .tutor-single-course-lead-meta { display: none; } .lead-meta-item meta-course-total-enrolled { display: none; }