Logo de l'organisme de formation

La formation au coeur de l'avenir technologique

Représentation de la formation : C++ - Expertise

C++ - Expertise

Formation à distance
Durée : 28 heures (4 jours)
Durée :28 heures (4 jours)
HT
Se préinscrire
Durée :28 heures (4 jours)
HT
Se préinscrire
Durée :28 heures (4 jours)
HT
Se préinscrire

Formation créée le 10/01/2023. Dernière mise à jour le 20/03/2023.

Version du programme : 1

Programme de la formation

Objectif de formation : Maîtriser les concepts avancés du langage C++

Objectifs de la formation

  • Utiliser des bonnes pratiques concernant l'usage des classes
  • Connaître le besoin et les pièges des conversions
  • Connaître l’intérêt du Run-time type information
  • Comprendre l’utilisation des pointeurs
  • Programmer les exceptions de manière efficace
  • Comprendre comment manipuler les templates & les design patterns
  • Gérer un objet qui se comporte comme une fonction
  • Déployer la puissance de la bibliothèque STL
  • Concevoir des idiomes
  • Appréhender les possibilités de la bibliothèque Boost
  • Comprendre les principales nouveautés du C++11

Profil des bénéficiaires

Pour qui
  • Développeurs
Prérequis
  • Expérience pratique de programmation C++

Contenu de la formation

  • Classes en C++
    • Constructeurs & gestion de la mémoire
    • Forme canonique d'une classe
    • Rôle du constructeur de copie
    • Surcharge de l'opérateur d’affectation
    • Intérêt d'un destructeur virtuel
    • Pièges et erreurs
    • Travaux Pratiques : Exécution d'exemples pédagogiques illustrant les concepts présentés
  • Conversions en C++
    • Présentation des conversions, syntaxe
    • Const_cast
    • Static_cast
    • Reinterpret_cast
    • Dynamic_cast
    • Travaux Pratiques : Détermination du type de cast et déploiement dans différentes situations
  • Identification de type à l'exécution
    • Concepts clés et cas d'usage
    • Usage du dynamic_cast : réalisation d'un downcast dans une hiérarchie de classes
    • Opérateur typeid & classe type_info
    • Travaux Pratiques : Déploiement de RTTI pour effectuer un affichage spécifique d'un objet faisant partie d'une hiéarchie de classes
  • Pointeurs & membres de classes
    • Syntaxe des pointeurs sur membres de classes
    • Déploiement
    • Travaux Pratiques : Manipulation de pointeurs
  • Smart pointers
    • Danger des pointeurs nus
    • Concept de la gestion de ressources
    • Rôles des smart pointers
    • Raisons de l'obsolescence de auto_ptr
    • Implémentation de unique_ptr, shared_ptr et weak_ptr
    • Travaux Pratiques : Utilisation et déploiement des pointeurs intelligents
  • Traitement des exceptions
    • Concept d'exceptions
    • Classes d'exceptions
    • Lever une exception
    • Gestionnaires d'exceptions
    • Liste d'exceptions
    • Hiérarchies d'exceptions
    • Classes d'exceptions standards
    • Constructeurs & exceptions
    • Exceptions & gestion des ressources
    • Best practices
    • Travaux Pratiques : implémentation d'une gestion d'exceptions dans une application effectuant des entrées-sorties
  • Templates
    • Introduction
    • Forces & faiblesses
    • Syntaxe des templates de fonctions
    • Syntaxe des templates de classes
    • Syntaxe des templates de méthodes
    • Instanciation des templates de fonctions
    • Instanciation des templates de classes
    • Spécialisation partielle ou totale des templates
    • Travaux Pratiques : Implémentation d'une fonction template, d'une classe template puis d'une classe template template
  • Premiers pas avec les Design Patterns
    • Introduction des patterns du GoF
    • Patterns de création
    • Patterns de structure
    • Patterns de comportement
    • Travaux Pratiques : Manipulation des différents patterns
  • Foncteurs
    • Introduction
    • Rôles des foncteurs
    • Foncteurs prédéfinis dans la bibliothèque standard
    • Usage d'adaptateurs de fonctions unaires & binaires
    • Travaux Pratiques : Implémentation d'un foncteur dans un algorithme
  • Bibliothèque STL
    • Premiers pas avec la Standard Template Library
    • Conteneurs
    • Allocateurs
    • Itérateurs
    • Algorithmes
    • Entrées-sorties
    • Travaux Pratiques : Déploiement de quelques conteneurs, d'algorithmes & template d'entrées-sorties
  • Idiomes
    • Traits
    • Policy
    • SFINAE
    • CRTP : pour le polymorphisme statique
    • Travaux Pratiques : Implémentation des différents idiomes rencontrés
  • Méta-programmation
    • Comment exécuter à la compilation
    • Forces & faiblesses
    • Optimisations
    • Travaux Pratiques : Implémentation de la méta-programmation dans des cas d'études
  • Bibliothèque Boost
    • Introduction
    • static_assert
    • property_map
    • smart_ptr
    • tuple
    • any
    • variant
    • threads
    • interprocess
    • mpl
    • Travaux Pratiques : Mise en pratique de plusieurs templates
  • Nouveautés de C++11
    • Mot-clés auto, decltype & constexpr
    • Définition des rvalue références
    • Application des rvalue références : déplacement & transfert parfait
    • Utilisation de std::move & std::forward
    • Les fonctions lambda
    • Les variadic templates
    • Initialisation des données membres non-statiques
    • Alias de template
    • Constructeurs délégués
    • Déclarations étendues de l’amitié
    • Surcharge explicite de la virtualité
    • Constante nullptr
    • « Range-based » for
    • Opérateurs de conversion explicites
    • Tour d'horizon des types POD (Plain Old Data) revisités
    • Types locaux et non nommés comme arguments template
    • Énumérations à typage fort
    • Fonctions par défaut et supprimées
    • Espaces de nom inline
    • Propagation des exceptions
    • Travaux Pratiques : Mise en pratiques des nouveaux outils de C++
  • Performances
    • Introduction
    • Présentation des Best Practices
Équipe pédagogique

Professionnel expert technique et pédagogique.

Suivi de l'exécution et évaluation des résultats
  • Émargement numérique
  • Mises en situation
  • Formulaires d’évaluation de la formation
  • Certificat de réalisation de l’action de formation
Ressources techniques et pédagogiques
  • Espace intranet de formation
  • Documents supports de formation projetés
  • Exposés théoriques
  • Étude de cas concrets
  • Mise à disposition en ligne de documents supports à la suite de la formation

Qualité et satisfaction

Taux de satisfaction des apprenants, nombre d'apprenants, taux et causes des abandons, taux de retour des enquêtes, taux d'interruption en cours de prestation...