Advanced C++ Programming | Advanced Modern C++

Move to the next level in your career with advanced C++ Programming

Course Code : 1350
Advanced C++ Programming | Advanced Modern C++ 0 5 0

$2595

Overview

This course is designed as a combination of high quality and advanced topics, taught in a practical manner with the aim of enhancing the participants’ skills in C++ programming. The course provides a holistic overview of a wide range of topics such as inheritance, the ANSI C++ Standard Library, templates, I/O streams, as well as the challenges to efficient C++ programming and testing. It goes on to cover advanced topics such as advanced inheritance and polymorphism, rules of effective class design, including the use of composition and generic programming including lambda expressions and functors. Participants will benefit from the detailed explanations by experts on how each feature impacts programming styles, thus enabling them to apply them for practical exercises.

Schedule Classes

Looking for more sessions of this class?

Course Delivery

This course is available in the following formats:

Live Classroom
Duration: 10 days

Live Virtual Classroom
Duration: 10 days

What You'll learn

  • Inheritance and Polymorphism
  • ANSI C++ Library
  • Practical Aspects of C++ Programming
  • Advanced Polymorphism and Inheritance
  • Exception Handling
  • Runtime Type Information
  • Inheritance Hierarchies and Multiple Inheritance
  • Applications of C++ Concepts
  • An Overview of Templates
  • Overview of STL

Outline

  • Implementing a basic O-O design
  • Implementing classes
  • New keywords in C++ 11,14,17
  • RAII – Modern memory management in C++ – overview
  • Copy vs move semantics
  • Namespaces
  • 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
  • Variadic templates
  • The handle/body (Bridge) pattern
  • Using strings effectively
  • Smart pointers
  • Move constructor in depth
  • Other <memory> features
  • Base class initializer list
  • Composition
  • Member initialization list
  • Order of initialization
  • Inheritance vs. composition
  • Interfaces
  • Polymorphism
  • Chaining constructors
  • Inheriting constructors
  • Exception handling
  • try and catch
  • Exception flow of control
  • Context and stack unwinding
  • Handling exceptions in best context
  • Benefits of exception handling
  • Unhandled exceptions
  • Clean up
  • Multiple catch handlers
  • What is overloadable?
  • Why overload operators?
  • Functors
  • Unit testing – Quick overview
  • Unit testing in C++
  • Introduction <catch.hpp>
  • Overview
  • 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
  • Runtime Type and Polymorphism
  • type_info class
  • typeid operator
  • Compiler options
  • Safe pointer conversions
  • Dynamic cast
  • New C++ style casts
  • Static cast
  • Reinterpret cast
  • Const cast
  • Vectors
  • Vector.cpp
  • Vector operations
  • Typedefs
  • Deques
  • Deque as stack
  • Deque functionality
  • Lists
  • Generic programming
  • Tradeoff with lists
  • List memory allocation
  • List functionality
  • Associate containers
  • Sets
  • Sets with user-defined objects
  • Multisets (Bags)
  • Maps
  • Multimaps
  • Functional programming with containers
  • Pointers
  • Template version
  • String version
  • A Generalization of pointers
  • STL iterators
  • Input iterators
  • Output iterators
  • Forward iterators
  • Bidirectional iterators
  • Random access iterators
  • Overview threads
  • Starting threads
  • Managing threads
  • Overview of tasks
  • Tasks
  • async
  • Future & promise
View More

Prerequisites

Participants need to have have prior C++ programming experience.

Who Should Attend

This course is recommended for:

  • Advanced software developers (C++)
  • Technical project managers
  • Advanced systems programming (C++)
  • Senior C++ software developers

Interested in this course? Let’s connect!

Customer Reviews

Name
Email
Review Title
Rating
Review Content

No reviews yet