Formation C++ : Conception et Architecture

Apprenez C++ pas à pas et construisez des applications modernes, robustes et bien structurées.

Formation C++ : Conception et Architecture

Description

Cette formation C++ (Conception et Architecture) vous permettra d’acquérir des bases solides en C++ et de comprendre comment structurer des applications propres et évolutives.

Pendant 5 jours, vous apprendrez à :

  • Écrire vos premiers programmes C++ de manière autonome et structurée
  • Concevoir des classes claires et réutilisables pour modéliser vos besoins métier
  • Exploiter la bibliothèque standard (STL) pour gagner en efficacité et éviter de réinventer la roue
  • Gérer la mémoire sereinement pour éviter les fuites et comportements imprévisibles
  • Organiser votre code pour le rendre lisible, maintenable et évolutif
  • Adopter dès le départ les bonnes pratiques du C++ moderne pour produire un code actuel et professionnel

Public

Cette formation s’adresse aux développeur·se·s débutant en C++ souhaitant apprendre le langage de manière structurée et professionnelle, afin d’éviter les pièges classiques et adopter dès le départ les bonnes pratiques.

Formation IA-friendly

Cette formation étant IA friendly, les sessions sont adaptées aux développeur·se·s qui souhaitent utiliser de l'IA pour coder. Les exercices sont conçus pour tirer parti des IDEs agentiques. Le·a formateur·rice vous accompagnera sur les bonnes pratiques du développement assisté par IA.

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

  • Écrire un programme C++ structuré et compilable
  • Concevoir des classes en appliquant les principes fondamentaux de la programmation orientée objet
  • Utiliser la STL et les algorithmes standards pour manipuler des données
  • Mettre en œuvre l’héritage et le polymorphisme dans un programme simple
  • Gérer correctement la mémoire et le cycle de vie des objets
  • Intégrer les fonctionnalités essentielles du C++ moderne dans votre code

Pré-requis

  • Avoir déjà programmé dans un autre langage (Python, Java, JavaScript, C#, etc.)
  • Comprendre les notions de variables, conditions, boucles et fonctions
  • Avoir manipulé les bases de la programmation orientée objet (classes, méthodes)
  • Être à l’aise avec un environnement de développement (éditeur, terminal, compilation simple)
  • Ordinateur portable à apporter

Le programme de la formation C++ : Conception et Architecture

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

Formateur

Arnaud BECHELER

Arnaud Becheler, docteur en écologie évolutive et expert en C++, s'est forgé une réputation unique en associant ses compétences scientifiques à une expertise technique pointue. Spécialisé dans la conception de modèles prédictifs et de simulations en C++, il a utilisé son expertise pour modéliser des dynamiques écologiques complexes.

Outre ses contributions scientifiques, Arnaud continue d'enrichir la communauté open-source avec ses projets en C++. Ses outils logiciels ont été présentés lors de conférences internationales et approuvés par de nombreux experts du domaine. Passionné par le partage des connaissances, il a organisé de nombreux workshops et conférences sur des sujets liés au C++ et au machine learning.

Arnaud est un membre très actif dans la communauté C++, il organise notamment des meetups et partage ses connaissances lors de conférences internationales.

Avec plus de 10 ans d'expérience, il intervient aujourd'hui en tant que consultant, offrant son savoir-faire en intelligence artificielle, machine learning et architectures logicielles.

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 1810 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