L’environnement

Le C++ est un langage de programmation multiparadigme développé dans les années 1980. Connu pour sa puissance et sa flexibilité, il est largement utilisé dans divers domaines : développement de logiciels, systèmes embarqués, applications scientifiques…

Objectifs pédagogiques

À l’issue de la formation, le·la stagiaire sera capable de :

  • Comprendre et appliquer les concepts fondamentaux de la POO
  • Utiliser la bibliothèque standard et la STL
  • Appliquer les bonnes pratiques
  • Utiliser les fonctionnalités avancées du C++ moderne

Public concerné

Technicien·ne·s, ingénieur·e·s, développeur·se·s, scientifiques, enseignant·e·s.

Prérequis

Avoir suivi la formation C++ débutant ou posséder des compétences équivalentes.

Un questionnaire de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.

Programme de la formation

Introduction à la Programmation Orientée Objet (POO)

  • Concepts de base de la POO : encapsulation, héritage, polymorphisme
  • Abstraction : masquage des données, interfaces
  • Théorie des Classes : syntaxe, fonctions membres, constructeurs
  • Classes et Structures : différences techniques et cas d’utilisation

Approfondissement de la POO

  • Analyse et Conception : méthodologies de conception
  • Constructeurs et Destructeurs
  • Encapsulation : accès aux membres de classe
  • Classes de stockage et amitié : mots-clés friend et classes de stockage

Héritage et Polymorphisme

  • Héritage : hiérarchies de classes, sous-classes et super-classes
  • Impact sur les constructeurs et destructeurs
  • Polymorphisme faible : surcharge (overload)
  • Polymorphisme fort : redéfinition (override)
  • Héritage multiple, Méthodes virtuelles pures et Classes abstraites
  • Constructeurs par copie

Bibliothèque Standard et STL

  • Bibliothèque Standard (SL)
  • Templates
  • STL (Standard Template Library)
  • Lambdas et foncteurs : utilisation avancée des fonctions anonymes

Chaînes, Flux et Exceptions

  • Classe String : manipulation de chaînes de caractères
  • Flux : gestion des entrées et sorties
  • Fichiers : lecture et écriture
  • Exceptions : gestion des erreurs avec les exceptions

Bonnes Pratiques

  • Cast : conversions de type
  • Design Patterns : introduction aux modèles de conception
  • Const Correctness
  • Macros
  • Smart Pointers : introduction aux unique_ptr, shared_ptr…

C++ moderne

  • Vue d’ensemble du C++ moderne – C++ 11 à C++ 23
  • L’initialisation uniforme
  • La notion de move
  • Le const_expr
  • Les nouvelles bibliothèques (Chrono, FileSystem, Format…)
  • Les templates variadiques
  • Le multithreading
  • Les modules
  • Les concepts
  • Les coroutines