Programmation Orientée Objet en C++ Les fondamentaux
Durée :
5 Jours
Objectif :
Cette formation vous permettra de maîtriser les fondamentaux de la programmation orientée objet en C++.
Bien qu'existant depuis le début des années 80, le langage C++ a su évoluer au cours des années pour s'adapter au besoins modernes :
l'accent sera mis sur un style de codage moderne en s'appuyant sur C++ ISO 2017. L'environnement de développement présenté aux apprenant sera basé sur G++ et Eclipse/CDT.
Prérequis :
Connaissance préalable du langage C ou avoir suivi la formation « Mise à jour des compétences sur le langage C ».
Public :
Cette formation s'adresse aux développeurs ainsi qu'aux chefs de projets informatique souhaitant acquérir les bases du langage de programmation C++.
Autres Informations :
Devis :
Si vous souhaitez être contacté et obtenir plus d'informations sur cette formation
veuillez remplir notre formulaire de mise en relation.
Cursus :
Programmation Orientée Objet en C++ Les fondamentaux
Historique et introduction à la programmation C++
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
Quelques premières améliorations par rapport à C
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
Introduction à la Programmation Orientée Objet et principe d'encapsulation
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
Utilisation de la généricité via le concept de Template C++
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
Héritage et polymorphisme
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
Traitement d'exceptions en C++
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
Utilisation d'espaces de noms pour organiser votre code
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
Documenter vos codes
Présentation de l'outil Doxygen
Les différents marqueurs Doxygen
Travaux pratiques : rédaction d'une documentation et génération via Doxygen
La gestion des I/O en C++
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
Mise en oeuvre de tests unitaires en C++
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
Utilisation d'API de log
Présentation de Log4cxx
Les différents niveaux de logs
Configuration du moteur Log4Cxx
Outil graphique de visualisation de logs : chainsaw