Objectifs

– 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

Programme

-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

Public concerné:

Développeurs, chefs de projets
techniques.

Prérequis:

 Bonnes connaissances du langage
C++. Une expérience pratique de
la programmation avec ce langage
est recommandée