Public visé
Développeurs.
Prérequis
Avoir connaissance du langage C, est conseillé.
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Programmer objet en C++
- Définir l’héritage et le polymorphisme
- Identifier les types de fonctions dont les inlines
- Gérer la mémoire et les pointeurs
- Utiliser la STL (Standard Template Library)
- Surcharger des opérateurs
Programme
Jour 1 - Matin
C++ langage basé sur le C : rappels
- Instructions, déclaration de variables, types et littéraux
- Portée des variables
- Les opérateurs et leurs priorités
- Les conditions, opérateurs logiques
- Les boucles, while, do while, for, break continue, goto
Structure d’un programme
- Le préprocesseur C / C++
- Header et implémentation
- Utilisation des constantes
- Compilation conditionnelle
- Déclaration anticipée (forward)
Jour 1 - Après-midi
Définition de fonctions
- La stack
- Appel d’une fonction
- Passage par valeur ou par référence
- Passage par pointeur
- Pointeur sur fonction
Jour 2 - Matin
Les classes
- Définition d’une classe
- Gestion de l’encapsulation
- Constructeur
- Membres et fonctions statiques d’une classe
- “this”
Jour 3 - Matin
Gestion de la mémoire
- Context Automatique, rappel sur la stack
- Context Statique
- Context Dynamique
- Destructeur d’une classe
Jour 3 - Après-midi
Const
- L’intérêt du “const”
- Paramètres “const”
- Fonctions membre “const”
Fonctions inline
- Inline implicite
- Inline explicite
- Impact sur la compilation
- Impact sur le code généré
Jour 4 - Matin
Héritage et polymorphisme
- Héritage public de C++
- Construction des classes dérivées
- Utiliser la ZIM
- Fonctions virtuelles
- Fonctions virtuelles pures et classes de bases abstraites
- Destruction des classes dérivées
Jour 4 - Après-midi
Surcharge d’opérateur
- Opérateur de cast
- Opérateur de pointeur
Jour 5 - Matin
Constructeur de copie et surcharge d’opérateur d’affectation
- Surcharge du constructeur de copie
- Surcharge de l’opérateur d’affectation
La STL (Standard Template Library)
- Les conteneurs
- Les itérateurs
- Les algorithmes
Jour 5 - Après-midi
Gestion des exceptions
- Les problématiques
- Exception et références
- Exception et valeurs
- Exception et pointeurs
Evolutions du langage C++
- Les lambda expressions
- Les closures
- Panorama des apports des versions C++11 à C++20
- Apports des nouvelles versions dans le langage
- Apports des nouvelles versions dans les classes
Modalités d’évaluation
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d’auto-évaluation