Objectifs pédagogiques
- 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.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir connaissance du langage C, est conseillé.
Testez vos connaissances
Afin de vous orienter vers la formation la plus adaptée à votre niveau, passez votre test de connaissances pour évaluer vos compétences actuelles.
Temps estimé : 4 minutes.
Passer le testPublic 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
Examen M2i (en option)
- Prévoir l'achat de l'examen 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
- L'examen n'est pas éligible au CPF, mais permettra néanmoins de valider vos acquis
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
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 et/ou un examen M2i
Les + de la formation
Un examen M2i permettant de valider vos acquis à l'issue de la formation est disponible sur demande (coût : 120€).