Formation Initiation au langage C++
dates des sessions
lieu
Toutes les dates
Objectifs
- Apprendre la programmation objet au travers du langage C++.
- Maîtriser l'analyse et la conception de programmes orientés objets.
Public
- Toute personne amenée à programmer, à superviser ou à modifier des logiciels écrits en langage C++ et liés au système d'exploitation.
Prérequis
- Il est demandé aux participants de connaître les bases d'un langage structuré (Pascal, C, ou autre).
Programme
Introduction à la conception orientée objet
- Les paradigmes de développement (procédural, objet, fonctionnel, déclaratif)
- Principes de conception objet : Abstraction, Encapsulation, Héritage et Polymorphisme
- Généricité
Syntaxe et modèle de C++
- Point d’entrée d’une application
- Utilisation de la console, objets d’entrée/sortie (streams)
- Fonctions, paramètres et spécificateurs
- Les tableaux
- La classe C++11 arrayT>
- Structures de contrôle
- La boucle « for-each » de C++11
- Introduction à la bibliothèque standard
- Les modèles mémoire (Data segment, Heap, Stack)
- Les pointeurs et les références
- La classe std::string
- L’initialisation uniforme de C++11
- Allocation et désallocation dynamiques
- Les smart pointers (uniqueptrT>, sharedptrT>) de C++11
- Les espaces de noms (namespaces)
Les concepts Objet appliqués au C++
- Classes, instances, cycle de vie d’un objet
- Encapsulation et visibilité (public-private-protected)
- Méthodes, constructeurs, destructeurs
- La zone d’initialisation des membres (ZIM)
- Surcharge (overloading)
- Membres de classes (ou statiques)
- Héritage, classes abstraites et concrètes
- Constance et robustesse
- Les nouveaux mots-clés (default, delete, override, final) de C++11
- Polymorphisme et interfaces
- Héritage privé
- La surcharge des opérateurs
- Clonage d’objets (construction par recopie / opérateur d’affectation)
Robustesse et traitement des exceptions
- Traitement des erreurs
- Assertions
- Traitement des exceptions
- Les clauses try – catch
- Gestionnaires d’exception
- Création d’une classe d’exception personnalisée
- Contrôle runtime de C++11 (clause noexcept)
Points clés de la Standard Template Library (STL)
- Présentation des principaux conteneurs (vector, list, set, map, deque)
- Critères de choix pour un conteneur STL
- Emplacement de C++11
- Les itérateurs
- Les algorithmes génériques
Généricité - Templates
- Définitions de patrons, syntaxe et instanciation
- Patrons de fonctions
- Templates de classe
Qualité logicielle et tests d’applications
- Les best practices en C++
- Idiomes et règles de conception
- Introduction aux design patterns
- Le développement guidé par les tests (TDD – Test Driven Development)
- Présentation succincte de GoogleTest
Certification
- Cette formation prépare au test suivant : CPA et entre en jeu dans le cursus de certification : CPA - C++ Certified Associate Programmer
Moyens et Méthodes Pédagogiques
- La formation est constituée d’apports théoriques, d’exercices pratiques et de réflexions
- Un poste par stagiaire
- Formateur Expert
- Remise d’une documentation pédagogique papier ou numérique pendant le stage
Validation des acquis
- Auto évaluation des acquis par le stagiaire via un questionnaire en fin de formation
- Attestation de fin de stage remise avec la facture