Objectifs pédagogiques / Compétences visées
- 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.
Niveau requis
Avoir connaissance du langage C, est conseillé.
Public concerné
Développeurs.
Programme
Jour 1
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
Exemples de travaux pratiques (à titre indicatif)
- 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)
Exemples de travaux pratiques (à titre indicatif)
- Travail sur les headers et implémentation en C++
- Compréhension des phases de pré-compilation
- Compilation de C++
Définition de fonctions
- La stack
- Appel d'une fonction
- Passage par valeur ou par référence
- Passage par pointeur
- Pointeur sur fonction
Exemples de travaux pratiques (à titre indicatif)
- 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
Les classes
- Définition d'une classe
- Gestion de l'encapsulation
- Constructeur
- Membres et fonctions statiques d'une classe
- "this"
Exemples de travaux pratiques (à titre indicatif)
- 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
Gestion de la mémoire
- Context Automatique, rappel sur la stack
- Context Statique
- Context Dynamique
- Destructeur d'une classe
Exemples de travaux pratiques (à titre indicatif)
- Création d'un nouveau projet sur la gestion mémoire
- Heap et stack
- Travail sur les destructeurs et constructeurs
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é
Exemple de travaux pratiques (à titre indicatif)
- Ajout et test de fonctions "inline" au projet
Jour 4
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
Exemples de travaux pratiques (à titre indicatif)
- Reprise du projet sur les classes
- Ajout de niveaux d'héritage
- Ajout de fonctions virtuelles et virtuelles pures
- Ajout de classes abstraites
Surcharge d'opérateur
- Opérateur de cast
- Opérateur de pointeur
Exemple de travaux pratiques (à titre indicatif)
- Sur un nouveau projet, ajout de la surcharge de plusieurs opérateurs et tests
Jour 5
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
Exemple de travaux pratiques (à titre indicatif)
- Projet exploitant les apports de la STL en C++
Gestion des exceptions
- Les problématiques
- Exception et références
- Exception et valeurs
- Exception et pointeurs
Exemple de travaux pratiques (à titre indicatif)
- 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
Certification (en option)
- Prévoir l'achat de la certification en supplément
- L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
- Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence
- La certification n'est plus éligible au CPF depuis le 31/12/2021, mais permettra néanmoins de valider vos acquis
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)