Trainings Details
Prof. Richard Kaiser is teaching C++ to software engineers for many years.
Together with the Embedded C++ advanced course, this basic course covers all topics that are important for programming embedded applications with C++.
The focus is C++17 for industrial embedded applications. Many examples illustrate the advantages of the modern language features compared to old C++97 or even C for microprocessors like STM32. The language features are illustrated by best practises like the MISRA C++ 2023 guidelines and the C++ core guidelines.
This hands-on in-house course is aimed at developers planning to migrate from C or older C++ standards to C++17 and learn about the latest tools and best practices.
Besides giving trainings, Prof. Kaiser is the author of C++ books like
Trainings Agenda
1. Elementary data types and statement
Fixed-width integer data types
Separators for literal numbers and binary literals
Type inference with auto
Type-safe initializations with initialization lists
Bit operations
Value and reference parameters
The use of C and C++ libraries
Constants and constexpr functions
Strongly typed enumeration types
C arrays, std::array and std::vector
Function pointers and interrupt functions (interrupt service handler ISR)
2. Pointers and smart pointers
3. Namespaces
4. Overloaded functions and operators
Find memory leaks with overloaded new and delete operators
User-defined literals
5. Object-oriented programming
Classes
Member functions and the this pointer
Data encapsulation
Constructors and destructors
Classes without pointers and the “rule of zero”
Member initializers
The default constructor, copy constructor, assignment operator
The =delete and =default specifiers
Constant objects and member functions
Converting and explicit constructors
Static class members
Inline variables and static data members
Inheritance and composition
Hidden elements
Virtual functions and polymorphism
Purely virtual functions and interface classes
6. Move semantics
R-value references and move semantics
Move semantics in the C++ standard library and for user-defined classes