Le C++ est le langage de choix pour les applications exigeantes en performance : jeux vidéo, systèmes embarqués, finance, simulation scientifique. Cette formation de 5 jours couvre l’ensemble des fondamentaux du langage, de la syntaxe héritée du C jusqu’à la programmation orientée objet avec héritage, polymorphisme et surcharge d’opérateurs. Vous découvrirez également la STL et les apports des standards modernes C++11 à C++20.
Public visé
Développeurs.
Prérequis
Avoir suivi les formations suivantes, ou en maîtriser les thèmes abordés :
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
Travaux pratiques
- Création d’un premier programme sans classe
- Utilisation des déclarations de variables et des types
- Ajout des opérateurs principaux de C++
- Ajout des structures de contrôle principales
Structure d’un programme
- Le préprocesseur C / C++
- Header et implémentation
- Utilisation des constantes
- Compilation conditionnelle
- Déclaration anticipée (forward)
Travaux pratiques
- Travail sur les headers et implémentation en C++
- Compréhension des phases de pré-compilation
- Compilation de C++
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
Travaux pratiques
- Création d’un programme avec déclaration et utilisation multiple de fonctions
- Modification des paramètres passés aux fonctions, par valeur et référence
- Déduction des différences observées
- Déclaration et utilisation de pointeurs sur fonctions
Jour 2 - Matin
Les classes
- Définition d’une classe
- Gestion de l’encapsulation
- Constructeur
- Membres et fonctions statiques d’une classe
- “this”
Jour 2 - Après-midi
Travaux pratiques
- Création d’un projet incluant plusieurs classes développées
- Encapsulation des données
- Utilisation des constructeurs
- Compréhension du “this” dans les méthodes de classe
- Exploitation des membres et fonctions statiques
Jour 3 - Matin
Gestion de la mémoire
- Context Automatique, rappel sur la stack
- Context Statique
- Context Dynamique
- Destructeur d’une classe
Travaux pratiques
- Création d’un nouveau projet sur la gestion mémoire
- Heap et stack
- Travail sur les destructeurs et constructeurs
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é
Travaux pratiques
- Ajout et test de fonctions “inline” au projet
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
Travaux pratiques
- Reprise du projet sur les classes
- Ajout de niveaux d’héritage
- Ajout de fonctions virtuelles et virtuelles pures
- Ajout de classes abstraites
Jour 4 - Après-midi
Surcharge d’opérateur
- Opérateur de cast
- Opérateur de pointeur
Travaux pratiques
- Sur un nouveau projet, ajout de la surcharge de plusieurs opérateurs et tests
Jour 5 - Matin
Constructeur de copie et surcharge d’opérateur d’affectation
- Surcharge
- Du constructeur de copie
- De l’opérateur d’affectation
La STL (Standard Template Library)
- Les conteneurs
- Les itérateurs
- Les algorithmes
Travaux pratiques
- Projet exploitant les apports de la STL en C++
Jour 5 - Après-midi
Gestion des exceptions
- Les problématiques
- Exception et références
- Exception et valeurs
- Exception et pointeurs
Travaux pratiques
- Ajout de la gestion des exceptions try-catch sur les divers projets réalisés
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 des acquis
En cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Pour aller plus loin
Cette formation donne accès aux formations suivantes :
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
Formation DEV-CPP-100 — C++ - Initiation. Domaine : Développement. Niveau : Initiation. Durée : 5 jours (35 heures). Mots-clés : c++, développement, initiation, poo, stl. Cylian Formation, Dijon.