L3Embedded C++
The C++ Language for Embedded Systems
Objectives
|
- Training manuals and software exercises
- One PC for two trainees
- One target board with ARM Cortex M4 microcontroller (STM32F)
- Eclipse environment and GCC compiler
- C Language knowledge (see for example our L2 - C language for Embedded MCUs course)
- Theoretical course
- Printed and PDF material in English.
- Trainer assistance throughout.
- Practical activities (40-50% of duration)
- Code examples, exercises and solutions.
- One PC (one per two beyond six trainees) with target board if needed; install manual provided on-site.
- Downloadable preconfigured VM to redo the labs afterwards.
- Each session starts with a trainee check-in.
- Any embedded systems engineer or technician with the above prerequisites.
- Prerequisites are checked before the training.
- Progress is assessed by the trainer through the practical exercises, and by quizzes for sections without exercises.
- Each trainee receives a completion certificate.
- If a prerequisite gap appears, alternative or additional training is offered.
Course Outline
- Introduction to object oriented programming
- History and definition
- Overview on C++ standards
- Modern C++ objectives
- Switch from C to C++
- Embedded C++ specification ( EC++)
- How to write optimized embedded code
| Exercise: | Understand function mangling | |
| Exercise: | Function inlining | |
| Exercise: | Volatile variable handling | |
- Object Oriented Programming in C++
- Encapsulation
- Classes and objects
- Attributes and member functions
- Object construction and destruction
- Construction parameters
- Copy constructor
- Object composition and container
- Scope qualifier operator
| Exercise: | Declaring classes and methods | |
| Exercise: | Working with default, copy and parameterized constructors | |
| Exercise: | Understand the differences between composition and aggregation | |
- Operator Overloading
- Optimizing parameter object passing
- Overloading operators by member functions
- Overloading operators by friend functions
- Memory management operators overloading
| Exercise: | The assignment operator | |
| Exercise: | Overloading operators | |
- Simple Inheritance
- Specialization by addition and substitution
- Derivation and access rules
- Construction during inheritance
- Inheritance polymorphism
- Virtual methods
| Exercise: | Understand inheritance | |
- Persistent and flashable objects
- Constant and partially constant objects
- Persistent objects
- Flashable objects
| Exercise: | Creating constant, mutable, persistent and ROMable objects | |
- Enhancing security with exceptions
- Launching, capturing and handling exceptions
- Retriggering exception
- Exceptions specifications
- Handling unexpected exception
- Exception objects of the C++ standard library
| Exercise: | Handle errors using exceptions | |
| Exercise: | Unexpected exceptions management | |
- I/O streams
- C++ language standard streams
- C++ standard librairies streams
- Standard IO redirection by friend functions
| Exercise: | Redefine operators ‘<<’ and ‘>>’ to read/write objects on an IO stream | |
- Member pointers
- Generic objects and templates
- Classes and generic functions
- Templates overloading
- Specializing templates
- STL (Standard Template Library)
- Templates in embedded systems
| Exercise: | Generic classes and functions | |
- Polymorphic objects
- Virtual objects and abstract classes
- Specializing objects by simple inheritance
- Building derivate objects
- Access control rules for inherited objects
- Specializing objects by multiple inheritance
- Conflicts resolution by scope operator
- Virtual inheritance
| Exercise: | Understand virtual methods by subclassing a generic Device class | |
| Exercise: | Understand multiple inheritance and virtual bases | |
More
To book a training session or for more information, please contact us on info@ac6-training.com.
Registrations are accepted till one week before the start date for scheduled classes. For late registrations, please consult us.
You can also fill and send us the registration form
This course can be provided either remotely, in our Paris training center or worldwide on your premises.
Scheduled classes are confirmed as soon as there is two confirmed bookings. Bookings are accepted until 1 week before the course start.
Last update of course schedule: 27 June 2026
Booking one of our trainings is subject to our General Terms of Sales