Durée: 4 jours

Dates: du jeudi 9 mai au mardi 14 mai

Horaires: 9h30 - 17h30

Lieu: Inria Saclay - Bâtiment Turing - Salles Grace Hopper (le 9 et le 10) et Henri Poincaré (le 13 et le 14)

Intervenants: Sébastien Gilles et Vincent Rouvreau

Cette formation a pour but de donner de solides bases en C++ dans sa version la plus moderne (C++ 14/17). A l'issue de la formation l'objectif est de:

La présentation est disponible ici et s'appuie sur les notebooks Jupyter avec le noyau Xeus-cling. Le README indique comment installer facilement Xeus-cling sur votre portable, qui sera indispensable car la formation alterne présentations et TP.

Pré-requis sur votre portable

Les inscriptions sont closes.

Contenu de la formation:

  1. Programmation procédurale
    • Variables, initialisation, affectations
    • Conditions et boucles
    • Types prédéfinis
    • Fonctions
    • Allocation dynamique de la mémoire
    • Entrées et sorties
  2. Programmation objet
    • Introduction au concept de la programmation objet
    • Fonctions membres
    • Constructeurs (de base) et destructeur
    • Encapsulation
    • Attributs statiques
    • Héritage et polymorphisme
  3. Opérateurs
    • Introduction au concept de surcharge d'opérateurs
    • Opérateurs de comparaison
    • Opérateurs de flux (entrée/sortie)
    • Opérateur d'affectation et forme canonique d'une classe
    • Foncteurs
  4. Templates
    • Introduction au concept de template
    • Spécialisation
    • Les syntaxes spéciales: mots-clés typename, template et this obligatoire
    • Métaprogrammation
    • Tease pour des concepts plus avancés avec les templates
  5. Concepts utiles et librairie standard (STL)
    • Gestion des erreurs
    • Idiome RAII
    • Conteneurs
    • Conteneurs associatifs
    • La "move semantics"
    • Les smart pointers
    • Les algorithmes de la STL
  6. C++ en environnement réel
    • Mise en place d'un environnement minimal
    • La structure des fichiers pour un programme C++
    • Compilateurs
    • Librairies tierces: comment les inclure sans récupérer leurs warnings de compilation
    • Les namespace
    • Outils divers