Plan du cours
- Qu'est-ce qu'un système embarqué ?
- Définition simple
- Quelques jalons historiques
- Caractéristiques
- Pourquoi utiliser C++ ?
- Comparaison avec C
- C : Un sous-ensemble de C++ – presque
- Performance
- Fonctionnalités « gratuites » ajoutées
- Pourquoi ne pas utiliser C++ ?
- Classes
- Variables membres
- Variables d'instance
- Variables de classe
- Fonctions membres
- Fonctions d'instance
- Fonctions de classe
- Méthodes implicites
- Constructeur
- Initialisation
- Délégation
- destructeur
- Opérateur d'assignation par copie
- Constructeur
- Sémantique de déplacement – éviter la copie profonde inutile
- struct en C++
- Package / Espace de noms (Namespace)
- Variables membres
- Héritage
- Introduction
- Mise en œuvre
- Performance
- Héritage multiple
- Héritage virtuel
- Polymorphisme
- Introduction
- Fonction virtuelle
- Destructeur virtuel
- Implémentation
- Runtime Type Information (RTTI)
- Performance
- Gabarits (Templates)
- Introduction
- Gabarit de fonction
- Gabarit de classe
- Gabarits variadiques
- Gonflement du code (Code Bloat)
- Stratégies d'implémentation
- Métaprogrammation de gabarits (Template Meta Programming)
- Gabarits versus Héritage ?
- Gestion des erreurs
- Gestion des exceptions
- Problèmes de performance
- Implémentation
- Code inline
- Quand l'utiliser ?
- Stratégies
- Démarrage
- Démarrage système
- La partie C
- La partie C++
- Bibliothèque standard
- Standard Template Library (STL)
- Bibliothèque iostream
- Principales extensions apportées à la STL par C++11 :
- Sémantique de déplacement
- Gabarits variadiques
- Concurrence
- Gestion de la mémoire
- Le modèle mémoire de C++
- Types stdint
- Types atomiques et leurs opérations
- Stratégies
- Variables
- Placement new
- Gestion de la mémoire définie par l'utilisateur
- Le modèle mémoire de C++
- Interopérabilité entre C et C++
- Name Mangling
- Initialisation statique
- Mémoire dynamique
- Contenu d'une struct
- POD – Plain Old Data type
- Motifs de conception (Design Patterns)
- RAII – Resource Acquisition Is Initialization
- Entrées/sorties mappées en mémoire (Memory-mapped I/O)
- Interruption
- Initialisation des objets statiques
Pré requis
Aucune exigence spécifique n'est nécessaire pour assister à ce cours.
Nos clients témoignent (3)
Explication détaillée, répétition des points de manière subtile qui a vraiment bien ancré les connaissances. La volonté de Rod de vérifier à double tour les questions obscures que nous avons posées pour s'assurer que ses réponses étaient 100% correctes. De plus, son intérêt pour la discussion sur les avantages et les inconvénients des styles de codage alternatifs, afin que nous apprenions non seulement comment utiliser C++ selon nos intentions, mais aussi pourquoi il convient de le faire ainsi.
Nick Dillon - cellxica Ltd
Formation - Using C++ in Embedded Systems - Applying C++11/C++14
Traduction automatique
J'ai apprécié le temps qui nous a été alloué pour résoudre les exercices. Cela a été très utile car cela nous a permis de prendre le temps de réfléchir à nos solutions et de les mettre en œuvre.
Valeriu - Siemens
Formation - Using C++ in Embedded Systems - Applying C++11/C++14
Traduction automatique
Les détails sur le comportement du compilateur selon l'utilisation de la syntaxe. Les sections "Quiz" sont très stimulantes.
Andrea Pomatto
Formation - Using C++ in Embedded Systems - Applying C++11/C++14
Traduction automatique