Formation C++, programmation Objet

Apprenez le C++ moderne de A à Z : syntaxe, objets, mémoire, STL, templates, coroutines et bonnes pratiques !

Description

Cette formation C++ vous permettra de maîtriser les bases du langage ainsi que les évolutions majeures apportées par les standards modernes, de C++11 à C++23.

Elle vous guidera pas à pas dans l’apprentissage de la syntaxe, des structures de contrôle, des types de données et de la manipulation mémoire.

Vous explorerez en profondeur la programmation orientée objet et les principes de conception logicielle (SOLID), avec une montée progressive vers les paradigmes modernes comme les lambdas, les templates génériques, les smart pointers ou encore les concepts de C++20.

La formation est rythmée par des ateliers pratiques motivants : analyse de fichiers CSV, création d’API simple et visualisation de données.

Elle est idéale pour les développeur·se·s en quête de montée en compétence sur le langage C++ ou souhaitant moderniser leur approche du développement logiciel.

Public

Cette formation s’adresse aux développeurs, ingénieurs, chefs de projets proches du développement.

Campus Atlas

Cette formation est éligible au dispositif Campus Atlas. Il permet aux entreprises relevant de l'OPCO Atlas de suivre des formations sélectionnées à tarifs négociés, avec une prise en charge pouvant aller jusqu'à 100% selon votre branche et votre situation. Ce dispositif s'adresse aux entreprises cotisantes/adhérentes à Atlas et à leurs salarié·e·s.
Voir la page Campus Atlas de la formation

Les objectifs

Objectif de formation :
- A l’issue de la formation, le stagiaire sera capable de mettre en œuvre les principes fondamentaux de la conception orientée objet et de concevoir des applications en C++

Objectifs pédagogiques :
- Comprendre la syntaxe et les concepts fondamentaux du C++
- Maîtriser les ajouts majeurs des normes C++
- Appliquer les principes de la Conception Orientée Objet
- Écrire des programmes simples en appliquant les bonnes pratiques de développement
- Utiliser les structures de contrôle et les types de données en C++
- Manipuler les fichiers et la mémoire de manière basique

Pré-requis

  • Connaître les principes de la programmation orientée objet et disposer d’une expérience d’un langage de programmation.
  • Ordinateur portable à apporter

Le programme de la formation C++, programmation Objet

Jour 1 : Bases du C++

  • Introduction au C++
  • Syntaxe de base
    • Variables
    • Types
    • Opérateurs
    • Structures de contrôle
    • auto, const, constexpr, nodiscard, noexcept
  • Categories de variables: lvalues, rvalues
  • Sémantique de déplacement
  • Expressions Lambda
    • Syntaxe et utilisation des lambdas en C++
    • Captures par valeur et par référence
  • La Bibliothèque Standard (STL)
    • Introduction aux conteneurs
    • Itérateurs et parcours de conteneurs
    • Algorithmes de la STL

Mises en pratique :
- Reconnaitre les catégories de variables (lvalues, rvalues)
- Refactoriser un code en utilisant des lambdas et algorithmes STL

Jour 2 : Conception de classes

  • Concepts fondamentaux
    • Encapsulation
    • Abstraction
    • Héritage (Inheritance)
    • Polymorphisme
  • Conception de classe (class design)
    • Création de classes et d'objets
    • Données membres et fonctions membres
    • Constructeurs, destructeurs et cycle de vie des objets
    • Visibilité : public, protected, private, friend
    • Surcharge d'opérateurs
  • Principe S.O.L.I.D.
    • Principe de Responsabilité Unique (SRP)
    • Principe Ouvert/Fermé (OCD)
    • Principe de Substitution de Liskov (LSP)
    • Principe de Ségrégation des Interfaces (ISP)
    • Principe d’Inversion des Dépendances (IDP)

Mises en pratique :
- Mise en œuvre de l'encapsulation, les relations entre objets et la surcharge d'opérateurs
- Amélioration d’un système de notifications en appliquant les principes SOLID pour structurer un code évolutif

Jour 3 : Polymorphisme

  • Gestion de la Mémoire en C++
  • Pointeurs Intelligents (Smart Pointers)
  • Paradigme Générique (Templates)
    • Templates de fonctions et de classes
    • Polymorphisme à la compilation (Compile-Time Polymorphism)
    • Introduction aux templates variadiques
    • Spécialisation de templates
    • Concepts
  • Paradigme Orienté Objet (Héritage)
    • Héritage simple et multiple
    • Polymorphisme à l'exécution (Runtime Polymorphism)
    • Fonctions virtuelles, classes abstraites et interfaces
    • Utilisation des mots-clés virtual, override, final
    • Gestion des objets via des pointeurs et des références

Mises en pratique :
- Création d’un petit outil CLI d’analyse de fichiers CSV
- Mise en place d’une API web simple avec FastAPI
- Visualisation des résultats avec matplotlib

Jour 4 : Les fondamentaux du C++ moderne

  • C++11 : La révolution du C++ moderne
    • Mot-clé auto et inférence de type
    • Expressions lambda
    • Sémantique de déplacement
    • Pointeurs intelligents (std::uniqueptr, std::sharedptr)
    • Boucles for basées sur les ranges
    • Templates variadiques
  • C++14 : Raffinements et améliorations mineures
    • Lambdas génériques
    • Déduction du type de retour pour les fonctions
    • Assouplissement des restrictions constexpr
    • Littéraux binaires
  • C++17 : Simplification et nouvelles fonctionnalités
    • Structure bindings
    • if constexpr
    • Variables inline
    • std::optional, std::variant, et std::any
    • Algorithmes parallèles dans la STL

Mises en pratique :
- Refactoriser votre code avec les fonctionnalités de C++11 et C++14
- Implémenter des templates variadiques
- Intégrer des améliorations de C++17 dans votre code

Jour 5 : Conception et Architecture Avancées

  • C++20 : Une mise à jour majeure
    • Concepts et contraintes
    • Ranges
    • Coroutines
    • Modules
    • Spaceship operator
    • Améliorations constexpr
  • C++23 : Améliorations supplémentaires
    • std::expected pour la gestion des erreurs
    • Améliorations de std::optional et std::variant
    • Opérateur d'indice multidimensionnel
    • if consteval
  • Conception d'API en C++ moderne
  • Programmation générique, Concepts et Contraintes

Mises en pratique :
- Adopter des concepts et contraintes de C++20
- Modulariser votre code avec les modules de C++20
- Implémenter des coroutines et des nouvelles fonctionnalités de C++23

Télécharger le programme

FAQ

Nos formations sont éligibles à plusieurs dispositifs de financement, selon votre situation. Human Coders est certifié Qualiopi, ce qui permet la prise en charge par des organismes comme Pôle emploi, votre OPCO ou encore le CPF (Compte Personnel de Formation) pour certaines formations.

Pour en savoir plus, veuillez consulter notre page : Comment financer votre formation ?

Oui, la formation peut être proposée en présentiel ou en distanciel. Pour les inter-entreprises, les modalités (présentiel ou à distance) sont fonction de la session.

Nous pouvons organiser des sessions à d'autres dates ou dans d'autres villes (Bordeaux, Lille, Lyon, Marseille, Montpellier, Nantes, Nice, Paris, Strasbourg, Toulouse...)

Les formations se déroulent toujours en petit groupe de 3 à 6 stagiaires. Nous souhaitons que les formateurs et formatrices puissent passer un maximum de temps avec chacun·e.

Voici une journée type :

  • 9h : vous êtes accueillis par votre formateur·rice autour d'un petit déjeuner (croissants, pains au chocolat, jus de fruit, thé ou café...)
  • 9h30 : la formation commence
  • 12h30 : pause de midi. Le·a formateur·rice mangera avec vous. C'est l'occasion d'avoir des discussions plus informelles.
  • 14h : reprise de la formation
  • 18h : fin de la journée

8 raisons de participer à une formation Human Coders

  • Satisfaction client élevée : Un taux de statisfaction de 4,6/5 depuis 2012 (sur 1809 sessions réalisées). 99% des participants se disent satisfaits de nos formations
  • Approche pédagogique unique : Des formations en petit groupe, des formateurs passionnés et expérimentés, de véritables workshops... (Plus d'infos sur notre manifeste)
  • Catalogue de formations complet : 221 formations au catalogue, de quoi vous accompagner sur tout vos projets
  • Écosystème dynamique : Nous accompagnons les dev depuis 14 ans avec des initiatives comme Human Coders News, les Human Talks, le podcast ou encore notre serveur Discord
  • Financement facilité : Organisme certifié Qualiopi, indispensable pour que vous puissiez obtenir des aides au financement via votre OPCO
  • Références clients prestigieuses : De nombreux clients qui nous font confiance depuis des années
  • Accompagnement sur mesure : Nous vous proposons un accompagnement personnalisé par nos consultants pour vous aider dans vos projets au-delà de la formation
  • Valorisation professionnelle : Remise d'un diplôme, d'une attestation et d'une certification, suivant les formations effectuées, que vous pourrez afficher sur vos CV et réseaux sociaux

* Nombre de personnes ayant répondu au questionnaire de satisfaction sur cette formation depuis 2012