C++ Advanced Programming

Course Summary

C++ is the standard language for implementing many forms of object-oriented solutions, but it is also one of the most difficult languages to fully master. In this course, we will show you how to develop professional, high-reliability C++ applications that are reusable, easy to test, and easy to further develop – both by yourself and by others. You will learn to master advanced C++ concepts and how to develop efficient code with optimal memory management that can run on different platforms.

The training is a mix of theory and practical exercises.

Note: This training requires a minimum number of participants and is therefore not covered by the Informator start guarantee. We will contact you well in advance if the course will not take place.

 

By the end of the course, you will have an understanding of how to develop professionally in C++ and write efficient C++ code. You will also learn how to write cross-platform code and code with style in C++.

The target audience is developers who have been working with C++ for some time and want to deepen their knowledge, both of the language itself and of common idioms and best practices.

General C/C++ development.

This course has no certification.

This course is organized in collaboration with Mindroad.

Mindroad is an engineering company that offers advanced software development training with a focus on embedded systems, methodologies and workflows, and application development. Their instructors combine engineering work in software development with conducting training sessions, allowing them to share their experiences from their daily work.

Modern C++

The major changes in modern C++

More about classes

  • Immersion in classes, members, inheritance and polymorphism
  • Generated methods and operators
  • Resource allocating classes

R-value references and move semantics

  • Constructor and assignment operator that moves data instead of copying
  • Effective initiation

Types of vocabulary

  • std::optional, std::any, std::variant and visitor

Templates

  • Create class and function templates
  • Explicit instantiation
  • Explicit specialization
  • Partial instantiation
  • Alias templates

Functional objects and lambda expressions

  • Function call operator
  • Functional object as predicate
  • std::function
  • Using external variables – capture

Smart pointers

  • Why use smart pointers?
  • std::unik_ptr
  • std::shared_ptr
  • std::weak_ptr

Exception

  • Performance with exceptions
  • Assert or exempt?
  • Exceptional security

Chrono

  • Different types of watches
  • Calendar of events
  • Time zones
  • Time span

Interval

  • Interval
  • The view
  • Range algorithms

Advanced template programming

  • Variadic templates
  • SFINAE
  • Concepts

Modulator

  • module
  • import
  • export
  • Building systems

Course Overview

28 450 kr

3 days

Can’t find a (suitable) date, but are interested in the course? Send in an expression of interest and we will do what we can to find a suitable opportunity.

Out of stock

Customized Courses

The course can be adapted from several perspectives:

  • Content and focus area
  • Extent and scope
  • Delivery approach

In interaction with the course leader, we ensure that the course meets your needs.

Skicka intresseanmälan för utbildningen

Send an expression of interest for the training