– Découvrir les nouveautés apportées par les nouveaux standards de C++
– Maîtriser la gestion de la mémoire, des pointeurs et des références
– Implémenter la généricité en C++
– Découvrir la bibliothèque standard STL
– Utiliser les apports de C++ moderne : C++11, C++14 et C++17
-Classes d’allocation mémoire.
– Construction, initialisation, embarquement d’objets.
– Les fuites mémoire.
– Constance, le mot-clé mutable, Lazy Computation.
– Amitié (friendship) C++ et contrôle d’accès.
– Destruction virtuelle.
– Stratégie de gestion des exceptions.
– Les espaces de nommage (namespace).
– Initialisation uniforme
– nullptr et autres littéraux.
– Espaces de nommage impriqués (nested namespaces)
– Les directives =delete, =default.
– Délégation de constructeurs.
– Les énumérations « type safe ».
– Le mot-clé auto et boucle sur un intervalle.
– Référence rvalue et impact sur la forme normale des classes C++.
– Les lambda expressions.
Travaux pratiques
Réécriture d’un code C++ existant en C++ moderne et la comparaison des
deux implémentations.
– Opérateurs binaires et unaires.
– L’opérateur d’indirection, cas d’usage.
– L’opérateur de référencement.
– Les opérateurs d’incrémentation/décrémentation préfixés et post
fixés.
– Les autres opérateurs : comparaison, affectation, etc.
– La surcharge de l’opérateur [], des opérateurs d’insertion
(<<) et d’extraction (>>).
– Les foncteurs et la surcharge de l’opérateur (), avantage par
rapport aux fonctions.
Travaux pratiques
Création de foncteurs et de proxies (libération mémoire, comptage
de références) avec les opérateurs étudiés.
– Opérateurs de conversion. Constructions implicites, le mot
clé explicit.
– Les opérateurs de casting const_cast, static_cast, reinterpret_cast.
– Conversion dynamique et Runtime Type Information.
– Les exceptions structurées
– La classe type_info.
– Contrôle du « downcasting » à l’aide de l’opérateur dynamic_cast.
Travaux pratiques
Mise en œuvre des idiomes « is-a » et « is-kind-of » avec
dynamic_cast.
Référence : DEV011
Type de Stage : Pratique
Durée : 4 jours
Développeurs, chefs de projets
techniques.
Bonnes connaissances du langage
C++. Une expérience pratique de
la programmation avec ce langage
est recommandée