Embedded C++ Training | Ac6 Training

ac6-training, un département d'Ac6 SAS
EN
EnglishFrench
go-up

ac6 ac6-training Programming Languages Embedded C++
L3Embedded C++
The C++ Language for Embedded Systems

Objectives

  • Master the C++ language
  • Use C++ Template (generic code) in Embedded Systems
  • Master the C++ Advanced aspects such as polymorphism, single and multiple inheritances.
  • Learn to redefine the C++ operators for dynamic memory allocation in embedded applications
  • Make C++ objects persistent in programmable flash
  • Manage C++ exceptions for Secure Embedded applications
  • Use C++ objects to handle serial transmission / reception of character strings
  • Training manuals and software exercises
  • One PC for two trainees
  • One target board with ARM Cortex M4 microcontroller (STM32F)
  • Eclipse environment and GCC compiler
  • 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