Maxtrain.com - info@maxtrain.com - 513-322-8888 - 866-595-6863
Intermediate C++ Programming / Effective C++
Description
Intermediate C++ Programming / Effective C++ Introduction
Dive into the world of advanced C++ programming with our Intermediate C++ 20 / Effective C++ 20 course, tailored for experienced developers. This four-day, immersive training program is designed to deepen your understanding and skills in C++ programming, emphasizing the latest C++ 20 standards. You will engage in a comprehensive exploration of advanced topics ranging from a refresher on C++ fundamentals to mastering modern features, advanced memory management techniques, and sophisticated unit testing strategies.
This hands-on program also takes you through the intricacies of functional programming within the C++ landscape. You’ll explore how modern design patterns, such as Inversion of Control (IoC) and dependency injection, along with functional programming elements like functors and lambda expressions, can significantly enhance your coding efficiency and clarity.
The course emphasizes adherence to the SOLID principles, offering insights into implementing inheritance, polymorphism, exception handling, and operator overloading in a robust and maintainable manner. Additionally, you’ll gain comprehensive knowledge of the C++ Standard Library, mastering the use of containers, algorithms, numeric operations, and time management functionalities.
The training also includes a practical introduction to concurrent programming, covering threads, tasks, and asynchronous programming paradigms. A special segment on unit testing, featuring GTest, will equip you with the skills to ensure your C++ code is not only functional but also reliable and free of defects.
By joining this intensive and interactive course, you will elevate your C++ programming skills to a new level, gaining proficiency in the latest C++ 20 programming techniques. This rigorous, lab-based training is aimed at empowering you with the confidence and expertise to undertake complex C++ development projects, preparing you to meet the demands of the fast-evolving software development landscape.
Intermediate C++ Programming Course 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.
Prerequisites
- Incoming students should have basic knowledge of C++ Programming
Audience Profile
- 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.
Intermediate C++ Programming / Effective C++ Outline
Quick Review of C++
- Implementing a basic O-O design
- Implementing Classes
- Visibility & friends
- File organization
- C++ types – structs, classes, interfaces, enums
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
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
Memory Management
- The handle/body (Bridge) pattern
- Using strings effectively
- Smart Pointers
- Move constructor in depth
- Other features
Unit Testing in C++
- Unit testing – Quick Overview
- Unit testing in C++
- Using GTest
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
Exceptions
- Review of the basics: try, catch, throw
- The throws declaration in modern C++
- Using noexcept
- Overriding terminate
Operator Overloading & Conversion
- Basics
- Essential Operators
- Conversion Operators
- Constructor as conversion
- Explicit vs Implicit conversion
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
Standard Library
- Perspective
- History and Evolution
- New Features
- Generic Programming
- Containers
- Algorithms
- Numerics
- Dates & Times
- Initializer List
Introduction to Multitasking
- Threads
- Tasks
- Async
$2495.00
|
4 Days Course |