Formation Perfectionnement en langage C++

REF
LC002
DUREE
4 Jours
TARIF
2290€ HT
>

Objectifs

  • Maîtriser les mécanismes avancés de C++ (héritage multiple / virtuel, programmation générique, méta-programmation, …)
  • Appréhender et mettre en oeuvre les techniques de la nouvelle norme C++11/14 telles que les lambda-expressions, la programmation fonctionnelle ou la notion de move semantics
  • Savoir pratiquer l’approche TDD (Test Driven Development) en C++
  • Découvrir et maîtriser la programmation parallèle et synchronisée introduite par C++11
>

Public

  • Développeurs C++
  • Chargés de développement d’applications informatiques
>

Prérequis

  • Avoir suivi la formation "Les fondamentaux du développement C++"
>

Programme

Nouveautés fondamentales de la norme C++11/14

  • nullptr_t et le littéral nullptr
  • Les nouveaux types, littéraux et séparateurs
  • Variables templates
  • Initialisation uniforme
  • Initialisation de tableaux et collections
  • Parcours unifié des tableaux et conteneurs
  • Listes d’initialisation avec initializer_listT>
  • La boucle “range based” for
  • Énumérations fortement typées
  • Types normalisés et variantes (uint_8, uint64_t, …)
  • Contrôle de l’alignement mémoire
  • Inférence de types et de signatures avec auto
  • C++14 et déduction étendue
  • Les nouveaux spécificateurs de classe (override, default, delete, final)
  • Constructeur délégué
  • Constructeur hérité
  • Alias et using
  • Expressions constantes avec constexpr
  • Gestion du temps, l’espace de nom chrono

Move semantics

  • Copie versus déplacement
  • Value et RValue reference
  • La fonction move
  • Move constructor et move assignement operator
  • Héritage et move constructor / op=
  • STL C++11 et swap / move
  • Signature reference qualifiers
  • Mauvaises pratiques

Gestion des ressources

  • Resource Acquisition Is Initialization (RAII)
  • L’opérateur -> avec ou sans généricité
  • Propriété et transfert de responsabilité
  • La classe unique_ptr
  • Unique_ptr et tableaux dynamiques
  • Comptage de références avec la classe shared_ptr
  • Custom deleter
  • Les fonctions make_unique (C++14) et make_shared
  • La classe weak_ptr et le référencement circulaire

Gestion avancée des exceptions

  • Principes
  • Dynamique
  • Traiter une exception
  • Concevoir et hiérarchiser les exceptions
  • Traitement par défaut
  • Les exceptions prédéfinies
  • Abraham’s Exception safety guarantees
  • La clause C++11 noexcept

Héritage avancé

  • Surcharge et ambiguïtés
  • Héritage public et redéfinition privée
  • Héritage privé et protégé
  • Héritage multiple
  • Héritage en diamant
  • Héritage virtuel et dominance

Programmation fonctionnelle avec C++ 11/14

  • Problématique de l’abonnement
  • Les classe function et mem_fn
  • Binding, placeholders
  • Adaptateurs de références
  • Les lambda-expression

Utilisation avancée de la généricité

  • Typage multiple
  • Inférence des retours avec decltype
  • Paramétrage / spécialisation des méthodes
  • Perfect forwarding avec std::forward
  • Héritage / containment et généricité
  • Méta-programmation
  • L’idiome CRTP Curiously Recursive Template Pattern
  • Typologie C++ et classes de traits
  • Assertions statiques avec static_assert
  • Extended friend declaration
  • Les variadic templates, pattern matching et héritage multiple
  • SFINAE Substitution Failure Is Not An Error

Nouveautés C++11 de la librairie standard

  • Les nouveaux itérateurs cbegin
  • Les tableaux à taille fixe avec std ::array
  • Les nouvelles collections associatives : unordered_map/set
  • Singly-Linked Lists
  • Le conteneur tuple
  • Adaptateurs d’itérateurs, stream itérateurs
  • Les nouveaux algorithmes ensemblistes

Multithreading

  • Principes
  • Démarrage et détachement d’un thread
  • La classe std ::call_once
  • L’espace de noms this_thread
  • Futures / promises et packaged_task
  • Programmation asynchrone avec async
  • Politiques de démarrage
  • Comparaison thread versus future
  • Partage de ressources et mécanismes de synchronisation
  • Mutexes et données atomiques
  • Unique-lock et lock_guard

Approche Test Driven Design (TDD) en C++ avec GoogleTest

  • Concepts
  • Assertions et tests élémentaires
  • Tests multiples : suites de tests et Test Cases
  • Préparation et mutualisation des tests avec les Test fixtures
>

Moyens et Méthodes Pédagogiques

  • La formation est constituée d’apports théoriques, d’exercices pratiques et de réflexions
  • Un poste par stagiaire
  • Formateur Expert
  • Remise d’une documentation pédagogique papier ou numérique pendant le stage
>

Validation des acquis

  • Auto évaluation des acquis par le stagiaire via un questionnaire en fin de formation
  • Attestation de fin de stage remise avec la facture
Dates des sessions
Lieu
>19/01/2026
au
22/01/2026
Paris ou à Distance
>09/02/2026
au
12/02/2026
Paris ou à Distance
>09/03/2026
au
12/03/2026
Paris ou à Distance
Toutes les dates
Un Intra ?Une formation sur mesure ?
>19/01/2026
au
22/01/2026
Paris ou à Distance
>09/02/2026
au
12/02/2026
Paris ou à Distance
>09/03/2026
au
12/03/2026
Paris ou à Distance
>13/04/2026
au
16/04/2026
Paris ou à Distance
>18/05/2026
au
21/05/2026
Paris ou à Distance
>08/06/2026
au
11/06/2026
Paris ou à Distance
>22/06/2026
au
25/06/2026
Paris ou à Distance
>14/09/2026
au
17/09/2026
Paris ou à Distance
>28/09/2026
au
01/10/2026
Paris ou à Distance
>16/11/2026
au
19/11/2026
Paris ou à Distance
>07/12/2026
au
10/12/2026
Paris ou à Distance
Moins des dates
Un Intra ? Une formation sur mesure ?

Nos Clients

Logo Nativo Certification Qualiopi - Organisme de formation certifié
Localisation Nativo - 26-28 rue de Londres, 75009 Paris

Adresse :

26-28 rue de Londres
75009 Paris

Metro :

3
9
12
13
14
RER
A
E

Déclaration CNIL n° 1286285