Langage C++ - Programmation, perfectionnement
- 35h · 5j
- Formation en Français / Support en Français
Indicateurs de performance
Moyennes Elitek, toutes formations confondues
9.15/10
Satisfaction stagiaires
92%
Réussite à la certification
94%
Recommandent la formation
1 200+
Stagiaires formés
Objectifs pédagogiques
- Découvrir les nouveautés apportées par les versions
- 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 la norme C++11
Public concerné & prérequis
Profil du stagiaire :
- Concepteurs et développeurs d'applications en C++
- Chefs de projets
- Architectes logiciels.
Prérequis :
- Bonnes connaissances en développement C++
- Expérience requise
- Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en nous contactons
Programme détaillé
Rappels
- 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)
Les nouveautés du langage de C++11
- nullptr et autres littéraux
- 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
Gestion des opérateurs
- 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...
- 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
Conversion et RTTI
- 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
- L'opérateur typeid, les exceptions liées
- La classe type_info
- Contrôle du "downcasting" à l'aide de l'opérateur dynamic_cast
La généricité
- Introduction aux patrons de classe. Généricité et préprocesseur
- Fonction générique. Classe générique. Composition générique. Généralisation générique
- Spécialisation partielle et totale
- Introduction à la méta-programmation
- La généricité, principe fédérateur des librairies STL et Boost
La STL (Standard Template Library)
- Composants de la STL : types complémentaires, conteneurs, algorithmes, itérateurs, objets fonctions, les adaptateurs
- Les chaînes de caractères STL, la classe template basic_string et ses spécialisations
- Les conteneurs séquentiels et associatifs : définition, rôle et critères de choix
- Les allocateurs et la gestion de la mémoire des conteneurs
- Les méthodes d'insertion, de suppression, d'itération et d'accès aux principaux conteneurs : Vector, List, Set, Stack...
- Le concept d'itérateur. Parcours d'un conteneur
- Les différents groupes d'algorithmes STL : non mutants, mutants, de tri et de fusion, numériques
- Manipulation de conteneurs (manipulation, recherche de valeurs...)
- Paramétrer les algorithmes génériques par des objets "fonction"
- Les "adapteurs" et la modification du comportement d'un composant
- La STL et les traitements sur les flux (fichiers, mémoire...)
- Principe du RAII : les pointeurs automatiques et la classe auto_ptr
- Les exceptions standard de la STL.
Les nouveautés C++11 de la librairie standard
- Evolution historique : Boost --> TR1 --> C++11
- Les nouveaux conteneurs : array, forward_list, unordered_set, unordered_map
- La classe tuple
- Les pointeurs intelligents (smart pointer) : shared_ptr, weak_ptr, unique_ptr
- Les nouveaux foncteurs et binders
- Introduction à la gestion des threads
- Les expressions régulières
Boost et ses principes
- La Pointer Container Library (destruction des données pointées d'un conteneur)
- Les structures de données boost::any et boost::variant
- Programmation événementielle (connexions et signaux)
- Gestion des processus, mécanismes de communication interprocessus et mémoire partagée
Utilisation avancée de l'héritage
- Héritage versus embarquement. Héritage privé. Héritage protégé
- Exportation de membres cachés avec la Clause Using
- Héritage multiple et gestion des collisions de membres
- Héritage en diamant. Héritage virtuel et dynamic_cast
- Principes de conception : substitution de Liskov, principe d'ouverture/fermeture, inversion des dépendances
- Règles d'implémentation des interfaces en C++
Modalités pédagogiques
Exposé théorique, pratique et participatif, dispensé en FR, alternant :
- Présentation théorique
- Discussion autour des cas organisationnels des participants
- Mise en pratique par des ateliers
- Sont fournis aux stagiaires :
- Support en EN présenté par un instructeur certifié en accès en ligne
Formation à distance : L’outil Zoom sera utilisé pour la partie Visio-Conférence
Validation & certification
La formation est ponctuée d’une attestation de fin de formation délivrée par Elitek au client. Y seront précisés les objectifs pédagogiques, le nombre d’heures total de la formation, la validation des acquis et la date.
Expérience & résultats
- Taux de satisfaction : 92%*
*Moyenne des notes attribuées par un apprenant de la formation au cours des 12 derniers mois
Prochaines sessions
📅 Sessions sur demande
Un conseiller Elitek vous propose une date adaptée à votre planning sous 24 h. Formations disponibles en présentiel et en distanciel.
Demander une date →Accessibilité & Qualiopi
Elitek est certifié Qualiopi pour ses actions de formation. Nos formations sont accessibles aux personnes en situation de handicap : un référent handicap vous accompagne pour adapter le parcours (rythme, supports, modalités d'évaluation). Contactez-nous pour étudier les adaptations possibles.