Aller au contenu principal
Certifiante · Non Certification

Langage C++ - Programmation, perfectionnement

  • 35h · 5j
  • Formation en Français / Support en Français
Formation C++ perfectionnement : normes C++11 à C++20, STL, templates et patterns modernes. 35h, 5 jours, exercices pratiques, éligible CPF.

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.