Détails :
Durée :
5 Jours
Prérequis :
Public :
Objectifs :
- Découvrir C++ et ses bases avec un "Hello World"
- Explorer les améliorations de C++ par rapport à C
- Maîtriser la POO et l'encapsulation en C++
- Utiliser les templates pour la généricité en C++
- Implémenter l'héritage et le polymorphisme en C++
- Gérer les exceptions et erreurs en C++
- Organiser le code avec les espaces de noms
- Documenter le code avec Doxygen
- Gérer les entrées/sorties de fichiers en C++
- Mettre en œuvre des tests unitaires avec CppUnit
- Utiliser l'API de log Log4cxx pour le débogage
Demande de devis :
Devis :
Si vous souhaitez être contacté et obtenir plus d'informations sur cette formation
veuillez remplir notre formulaire de mise en relation.
Cursus de formation :
Programme détaillé de la formation :
- Filiation avec le langage C
- Pourquoi C++ ?
- Les différentes versions de la norme C++ ISO et les liens avec Boost
- Le langage C++ ISO 2017
- Présentation de GNU G++ et d'Eclipse/CDT
- Travaux pratiques : mise en oeuvre d'un « Hello World » en C++ avec Eclipse/CDT
- Les extensions de C++ et le standard C99
- Les commentaires en C++
- Une gestion des types plus strictes et le typage automatique
- Le type bool
- Simplification de l'utilisation des types énumérés, des structures et des unions
- Les types énumérés fortement typés
- Le principe de localité
- Les nouveaux opérateurs de gestion dynamique de la mémoire
- Passage de paramètres par références et comparaison avec le mode de passage par pointeurs
- Valeurs de paramètres par défaut
- Surcharge de fonctions et d'opérateurs
- Fonctions inlines
- Travaux pratiques : implémentation progressive d'une librairie mathématiques en utilisant ces différents concepts
- Pourquoi utiliser la POO (Programmation Orientée Objet)
- Le vocabulaire propre à la POO
- Comparatif entre structure C et classe C++
- Instanciation et utilisation d'objets
- Notion d'attributs et méthodes
- Protéger des membres de la classe via la notion de visibilité
- Constructeurs et destructeurs d'objet
- Délégation de constructeurs
- Constructeurs par copies
- Le principe d'encapsulation
- Définitions d'opérateurs membres de la classe
- Assistance proposée par Eclipse/CDT
- Travaux pratiques : la librairie mathématique développée dans le chapitre précédent et remaniée afin d'intégrer les concepts de POO présentés et de comprendre l'amélioration en termes de qualité du code produit
- Application de la généricité à la définition de fonctions
- Application de la généricité à la définition de classes
- Template utilisant des types par défaut
- Utiliser plusieurs types de généricité
- Travaux pratiques : implémentation d'une classe générique permettant la manipulation sécurisée de tableaux
- Qu'est-ce que l'héritage ?
- Mise en oeuvre de l'héritage
- La redéfinition de méthode et le spécificateur override
- Liaison statique, liaison dynamique et le polymorphisme
- Le mot clé protected
- Héritage public, privé ou protégé.
- L'héritage multiple en C++
- Finalisation de classes et de méthodes
- Assistance proposée par Eclipse/CDT
- Travaux pratiques : mise en oeuvre d'une hiérarchie de classes en utilisant les différents concepts étudiés
- Qu'est-ce qu'une exception ?
- Comparatif avec le traitement d'erreurs en C
- Lever une exception dans le système
- Capturer et traiter une exception
- Relayer une exception
- Coder une classe d'exception (entêtes <exception> et <stdexcept>)
- Les principales classes d'exceptions proposées par la librairie standard
- Travaux pratiques : implémentation d'une classe d'exceptions, déclenchement d'exceptions et traitement de ces dernières
- Qu'est qu'un espace de noms (namespace)
- Localiser un élément dans l'espace de noms global
- Le namespace std:: et la librairie standard
- Travaux pratiques : utilisation d'espaces de noms
- Présentation de l'outil Doxygen
- Les différents marqueurs Doxygen
- Travaux pratiques : rédaction d'une documentation et génération via Doxygen
- Les entêtes<iostream> et<fstream>
- Accès à des fichiers textes (8 bits ou 16 bits)
- Correctement traiter les erreurs
- Travaux pratiques : manipulation de fichiers textes
- Accès à des fichiers binaires
- Travaux pratiques : manipulation de fichiers binaires
- Pourquoi faire des tests unitaires ?
- Présentation de CppUnit
- Intégration dans Eclipse/CDT
- Travaux pratiques : réalisation d'une batterie de jeux de tests unitaires
- Présentation de Log4cxx
- Les différents niveaux de logs
- Configuration du moteur Log4Cxx
- Outil graphique de visualisation de logs : chainsaw
- Travaux pratiques : production et analyse de logs
Historique et introduction à la programmation C++
Quelques premières améliorations par rapport à C
Introduction à la Programmation Orientée Objet et principe d'encapsulation
Utilisation de la généricité via le concept de Template C++
Héritage et polymorphisme
Traitement d'exceptions en C++
Utilisation d'espaces de noms pour organiser votre code
Documenter vos codes
La gestion des I/O en C++
Mise en oeuvre de tests unitaires en C++
Utilisation d'API de log