Advanced C++ Programming-Advanced Modern C++

Enhance your programming skills to build more advanced applications

Course Code : 1176

[RICH_REVIEWS_SNIPPET stars_only=”true” category=””]

$2595

Overview

The advanced C++ programming (Advanced Modern C++) program equips experienced C++ programmers with enhanced programming skills, enabling them to build more advanced applications. The course begins with discussion on inheritance, ANSI C++ standard library, templates, I/O streams and sheds light on the challenges to efficient C++ programming and testing. It then moves on to discussions on more advanced topics such as, advanced inheritance and polymorphism, rules of effective class design, usage of composition, templates and interface inheritance, and templates and generic programming. The course finally concludes with a discussion on the key components of the standard library, such as, containers, algorithms and threads.

Schedule Classes

Looking for more sessions of this class?

Course Delivery

This course is available in the following formats:

Live Classroom
Duration: 5 days

Live Virtual Classroom
Duration: 5 days

What You'll learn

  • Object-oriented design
  • Features of modern C++
  • Generic programming
  • Smart pointers
  • Inheritance, composition and polymorphism
  • Overload operators and functors
  • Overview of exception handling
  • Overview of functional programming
  • STL containers and iterators

Outline

  • Implementing a basic OO design
  • Implementing classes
  • New keywords in C++ 11, 14 and 17
  • RAII – Modern memory management in C++
  • 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
  • Overview of C++ containers
  • 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
  • Oder 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 overload-able?
  • 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
  • cpp
  • Vector operations
  • Typedefs
  • Deques
  • Deque as a 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
  • Multipmaps
  • Functional programming with containers
  • Pointers
  • Template version
  • String version
  • A generalization of pointers
  • STL iterators
  • Input iterators
  • Output iterators
  • Forward iterators
  • Bi-directional iterators
  • Random access iterators
  • Overview threads
  • Starting threads
  • Managing threads
  • Overview of tasks
  • Tasks
  • Async
View More

Prerequisites

Participants need to have hands-on experience in programming using C++.

Who Should Attend

This course is highly recommended for experienced –

  • Software designers
  • Software developers
  • Software engineers
  • Android developers
  • Firmware developers
  • Verification engineers
  • Embedded software engineers
  • OpenStack engineers

Interested in this course? Let’s connect!