DATAROCKSTARS
Réf. INF-DEV-08Revenir au menu
Catalogue entreprises › Formations informatiques › Développement logiciel, informatique et Web

C++ moderne

Programmer en C++ moderne

5 jours · 35 h Niveau intermédiaire Présentiel, distanciel synchrone, hybride Inter · Intra · Sur mesure

Descriptif

C++ moderne est une formation de 5 jours (35 heures), de niveau intermédiaire, rattachée au domaine « Développement logiciel, informatique et Web ». Programmer en C++ moderne. Conçue et animée par des praticiens en activité, elle alterne apports ciblés (30 %) et mises en pratique (70 %) sur des laboratoires cloud individuels, avec des cas inspirés des secteurs banque, assurance et services publics. Disponible en inter-entreprises, en intra sur catalogue et en version sur mesure adaptée au contexte de l'entreprise.

Objectifs pédagogiques

À l'issue de la formation, le participant sera capable de :

  • Syntaxe
  • Objets
  • STL
  • Gestion mémoire
  • C++17 et C++20

Programme détaillé

N°Contenus et activités Durée
Jour 1
1Cadrage : pratiques C++ des participants, versions et normes en production, prise en main de l'environnement de compilation accessible par navigateur — GCC, Clang et CMake préinstallés, aucun outil à installer sur le poste0,5 h
2Chaîne de construction : unité de compilation, édition de liens, options de GCC et de Clang, projet CMake minimal, cibles et dépendances1,5 h
3Travaux pratiques : créer le projet CMake du fil rouge « analyseur de journaux », compiler avec GCC puis avec Clang, activer les avertissements stricts et les sanitizers2 h
4Types et expressions du C++ moderne : auto, références, const-correctness, enum class, liaisons structurées, initialisation uniforme1,5 h
5Travaux pratiques : coder la lecture et le découpage d'un fichier de journal en enregistrements typés1,5 h
Jour 2
6Classes : constructeurs et destructeur, règle des cinq et règle du zéro, listes d'initialisation, surcharge d'opérateurs, agrégats1,5 h
7Travaux pratiques : implémenter la classe LogEntry et un conteneur de statistiques copiable et déplaçable2 h
8Sémantique de déplacement et durée de vie : lvalue et rvalue, std::move, élision de copie, coût réel des copies1,5 h
9Travaux pratiques : mesurer les copies superflues de l'analyseur, les supprimer et comparer les temps d'exécution avant et après2 h
Jour 3
10La bibliothèque standard : conteneurs séquentiels et associatifs, itérateurs, complexités garanties, critères de choix du bon conteneur1,5 h
11Travaux pratiques : indexer les événements par sévérité et par service avec vector, map et unordered_map, puis comparer empreinte mémoire et performances2 h
12Algorithmes standards et lambdas : sort, transform, accumulate, find_if, puis les ranges et les vues de C++201,5 h
13Travaux pratiques : réécrire les boucles de l'analyseur avec les algorithmes standards puis avec std::ranges, et arbitrer entre lisibilité et coût2 h
Jour 4
14Gestion mémoire : pile et tas, idiome RAII, unique_ptr, shared_ptr et weak_ptr, propriété exclusive ou partagée, cycles de références2 h
15Travaux pratiques : remplacer les allocations brutes du fil rouge par des pointeurs intelligents et traquer les fuites avec AddressSanitizer2 h
16Templates et généricité : fonctions et classes templates, déduction des arguments, spécialisation, concepts et contraintes de C++201,5 h
17Travaux pratiques : rendre le moteur d'agrégation générique en contraignant les types agrégables par un concept1,5 h
Jour 5
18C++17 et C++20 en situation : optional, variant, string_view, filesystem, constexpr, modules et coroutines — usages pertinents et pièges2 h
19Travaux pratiques : introduire string_view et optional dans l'analyseur et parcourir l'arborescence de journaux avec std::filesystem2 h
20Concurrence : thread et jthread, mutex, variables atomiques, std::async, pièges de la mémoire partagée1,5 h
21Travaux pratiques : paralléliser l'analyse de plusieurs fichiers et valider l'absence de course avec ThreadSanitizer1 h
22Évaluation des acquis, revue croisée du code du fil rouge et plan de progression individuel0,5 h

Méthodes pédagogiques

  • Pédagogie active : 51 % du temps en pratique encadrée — laboratoires cloud provisionnés par participant, travaux pratiques guidés, fil rouge applicatif —, le reste en apports structurés, démonstrations commentées, cadrage et évaluation
  • répartition calculée sur le déroulé détaillé de cette formation, et non annoncée de façon uniforme
  • classe inversée avec prérequis sur le LMS
  • apprentissage adaptatif selon le positionnement initial
  • travaux en binômes
  • classe virtuelle en séquences de 3 h 30 maximum sur Microsoft Teams
  • support clair, complet et paginé remis à chaque participant

Technologies et outils mobilisés

C++20, CMake, GCC, Clang

Modalités d'évaluation et de validation

  • Positionnement initial en ligne
  • quiz de validation à chaque séquence
  • évaluation finale des acquis (QCM et mise en situation)
  • satisfaction à chaud
  • questionnaire de transfert à 30 jours
  • attestation de fin de formation

Plateforme, laboratoires et ressources

  • LMS DATAROCKSTARS : parcours, supports numériques, quiz, évaluations, émargement par demi-journée
  • laboratoires cloud individuels accessibles depuis un navigateur, sans installation, données fictives, détruits en fin de session
  • bibliothèque O'Reilly (plus de 60 000 ressources)
  • accès aux supports pendant 6 mois

Fiche mise à jour le 21/09/2026 — version 1.0. Les programmes sont révisés chaque trimestre et à chaque évolution majeure des technologies, normes ou référentiels de certification concernés.