Formation C++ - Expertise
Description
Objectif de formation : Maîtriser les concepts avancés du langage C++
- 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
- Développeurs
- Expérience pratique de programmation C++
- 1
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
- 2
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
- 3
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
- 4
Pointeurs & membres de classes
- Syntaxe des pointeurs sur membres de classes
- Déploiement
- Travaux Pratiques : Manipulation de pointeurs
- 5
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
- 6
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
- 7
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
- 8
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
- 9
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
- 10
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
- 11
Idiomes
- Traits
- Policy
- SFINAE
- CRTP : pour le polymorphisme statique
- Travaux Pratiques : Implémentation des différents idiomes rencontrés
- 12
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
- 13
Bibliothèque Boost
- Introduction
- static_assert
- property_map
- smart_ptr
- tuple
- any
- variant
- threads
- interprocess
- mpl
- Travaux Pratiques : Mise en pratique de plusieurs templates
- 14
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++
- 15
Performances
- Introduction
- Présentation des Best Practices
Ils nous font Confiance
Nos partenaires de confiance








































Questions fréquentes
FAQ : Formation C++ - Expertise
Oui, mais la prise en charge d'une formation professionnelle par un OPCO dépend de votre opérateur de compétences, de votre branche d'activité et des critères de financement applicables. Ascent Formation vous accompagne dans l'identification des possibilités de financement adaptées à votre entreprise.
Une formation inter-entreprises réunit des participants issus de différentes organisations, tandis qu'une formation intra-entreprise est organisée pour les collaborateurs d'une même entreprise. Le format intra permet notamment d'adapter le contenu et les modalités aux besoins spécifiques de vos équipes.
Selon la formation proposée, il est possible de suivre une formation professionnelle à distance, en présentiel ou selon d'autres modalités disponibles. Consultez les informations de la session concernée ou contactez-nous pour connaître les formats possibles.
Oui, une formation professionnelle peut être adaptée aux objectifs, au niveau des participants et aux besoins opérationnels de votre entreprise. Ascent Formation vous propose des parcours personnalisés pour accompagner le développement des compétences de vos équipes.