Formation continue

Pôle formation

Formation :
Langage C++
Référence : LC++
Durée :
5 jours
Niveau :
Débutant
Lieu :
à distance, Paris ou sur site
Tarif : 2890 € HT

Télécharger la fiche formation

Langage C++

Ils ont apprécié leur formation !

Consultez nos enquêtes de satisfaction

Découvrez aussi...

Qt Fondamentaux

Langage C++

Description

Ce stage intensif permet d'acquérir des bases solides en C++ moderne. Ce langage a en effet subi des évolutions majeures au cours des 10 dernières années, au point qu'il est difficile pour un débutant de distinguer les bonnes pratiques de celles qui sont devenues obsolètes. Pour cette raison, cette formation s'attache à véhiculer les principes clés qui guident l'évolution de C++, et ce afin de faire gagner un temps précieux au stagiaire dans son apprentissage.

Public concerné

Ce cours s'adresse aux développeurs qui souhaitent devenir rapidement opérationnels et autonomes en C++ tel qu'il devrait être utilisé aujourd'hui. A l'issue de ce cours, ils sauront mettre en œuvre ce langage dans le cadre de projets professionnels exigeants.

Objectifs de la formation

  • Comprendre la programmation orientée objet, les principes d'héritage et d'encapsulation
  • Créer des applications stables et performantes via une gestion robuste des ressources logicielles
  • Tirer avantage des dernières normes C++ pour gagner en productivité et simplicité
  • Organiser un projet C++ complexe, incluant des bibliothèques tierces et des tests unitaires

Prérequis

Connaissances de base en programmation.

Programme de la formation

Découverte du langage

  • C++ depuis ses origines (langage C) jusqu'à nos jours (C++20)
  • Syntaxe de base
  • Fonctions et passage de paramètres
  • Les tableaux et les enums
  • Les types constants et les casts
  • Copies, pointeurs et références
  • Inférence de type avec le mot-clé auto
  • Surcharge de fonctions et conversions implicites
  • Créer des types utilisateur avec struct et union
  • Définition d'alias avec typedef et using
  • Gestion des erreurs avec les exceptions

Structuration du code

  • Les namespaces
  • Déclaration et définition de symboles (One Definition Rule)
  • Les fonctions et variables membres
  • Les fonctions et variables statiques
  • Principe de const correctness
  • Les opérateurs et leur surcharge
  • Les modules (C++20)

Programmation orientée objet

  • Classes, constructeurs et destructeurs
  • Dérivation et héritage
  • Visibilité et contrôle d'accès (public, protected, private)
  • Mot-clé virtual et redéfinition de fonctions
  • Polymorphisme et encapsulation
  • Sémantique de valeur et sémantique d'entité
  • Types abstraits et interfaces
  • Principe de substitution de Liskov

Gestion robuste des ressources logicielles

  • Défis inhérents à la gestion des ressources
  • Découverte du RAII
  • Différence entre le tas et la pile
  • Découverte de std::string et std::vector
  • Portée, durée de vie et propriété (ownership)
  • Découverte des pointeurs intelligents (smart pointers)
  • Transfert de propriété (move semantic)

Aperçu de la programmation générique et de la métaprogrammation

  • Les différents types de polymorphisme
  • Principes d'une fonction template
  • Introduction aux classes template
  • static_assert, constexpr et consteval (C++20)
  • Découverte des templates variadic et du perfect forwarding
  • Découverte de la métaprogrammation (SFINAE)
  • Découverte des concepts (C++20)

Design de code C++ moderne

  • Introduction aux C++ Core Guidelines
  • Notions de fonction pure et de testabilité du code
  • Découverte de std::optional et std::variant
  • Expressions lambda et std::function
  • Type erasure avec std::string_view et std::span (C++20)
  • Attributs standards : [[nodiscard]], [[deprecated]]
  • La règle de zéro

La bibliothèque standard

  • Flux d'entrée/sortie (streams)
  • Découverte de std::format() (C++20)
  • Gestion du temps avec std::chrono
  • Gestion de fichiers avec std::filesystem
  • Principaux conteneurs de la STL
  • Utilisation des algorithmes de la STL
  • Programmation parallèle et concurrente (threads)
  • Découverte des ranges (C++20)

    Construire un projet C++ avec CMake

    • Utilité d'un build system tel que CMake
    • Modes de compilation Debug et Release
    • Découper son projet en plusieurs composants (bibliothèques)
    • Intégrer des bibliothèques externes
    • Ajouter et exécuter des tests unitaires
    • Effectuer une compilation conditionnelle
    • Les outils pour l'optimisation, le débogage, la vérification de code

    Un projet sur mesure ?

    Commercial Formation

    Contactez votre Conseiller Formation Styrel

    01 69 88 85 29

    Nos certifications

     
     
     
    La certification qualité a été délivrée au titre de la catégorie d’action suivante : ACTIONS DE FORMATION.
     
     

    Au sujet du handicap

    handicap styrel formation

    Vous êtes en situation de handicap ?
    Chaque situation étant particulière, n’hésitez pas à nous contacter afin que vous puissiez bénéficier de nos formations.