C++ - Expertise
0/10
(0 avis)
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...
0/10
(0 avis)