Programmation Orientée Objet en C++ Les compléments
Durée :
5 Jours
Objectif :
Cette formation vous permettra de compléter vos connaissances sur le langage C++ ISO 2017 et de maîtriser les principales librairies proposées.
L'environnement de développement utilisé sera basé sur G++ et Eclipse/CDT.
Prérequis :
Avoir suivi la formation « Programmation Orientée Objet en C++ - Les fondamentaux » ou connaître les bases de la programmation orienté objet en C++.
Public :
Cette formation s'adresse aux développeurs ainsi qu'aux chefs de projets informatique souhaitant compléter leurs connaissances sur le langage de programmation C++ ISO 2017.
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 compléments
Compléments sur le concept de généricité en C++
Définitions de méthodes et de classes génériques
Template avec types par défaut
Déclaration de variables locales et le mot clé typename
Template à nombre variable de types
Spécialisation de template
Notions de « traits » et l'entête <traits>
Manipulation de chaînes de caractères via des expressions régulières
La librairie <string>
Qu'est-ce qu'une expression régulière ?
Le langage d'expression régulière proposé par C++
Mise en correspondance, remplacement et extraction d'informations
Les expressions régulières gourmandes
Travaux pratiques : utilisation d'expressions régulières pour réaliser des mises en correspondances, des remplacements et des extractions d'informations
Compléments Boost pour la manipulation de chaînes de caractères
Travaux pratiques : utilisation des compléments offerts par Boost
Gestions des copies en C++
Opérateurs de copie et constructeurs par copie
Correctement réaliser les copies
Interdire les copies
Opérateurs et constructeurs de « move »
Travaux pratiques : corrections de bugs relatifs à la copie d'objets et retrait des fonctionnalités de copie
RAII et les « Smart Pointers »
Introduction à RAII (Resource Acquisition Is Initialization)
Mise en oeuvre d'une classe générique de « Smart Pointers »
Problématique des cycles de pointeur
Travaux pratiques : Implémentation d'une classe de « Smart Pointers »
Les différentes classes de « Smart Pointers » proposées en C++ ISO
Travaux pratiques : utilisation des classes standards de « Smart Pointers »
La librairie <typeinfo> et la réflexion en C++
La librairie <typeinfo>
L'opérateur typeid
Transtypage dynamique : opérateur dynamic_cast
Les autres opérateurs de transtypage
Travaux pratiques : mise en oeuvre d'un prototype de moteur de sérialisation
Utilisation de la STL (Standard Template Library)
Présentation de l'architecture STL : les conteneurs, les itérateurs et les algorithmes
Travaux pratiques : utilisation de quelques conteneurs proposés par la STL
Les différents types d'itérateurs
Les différentes techniques de parcours de collections : itérateurs, for_each, instruction for each, ...
Concept de « functions objects »
Travaux pratiques : utilisation de « functions objects »
Les différents types de collections de la STL
Les conteneurs ajoutés par C++11
Etude de divers algorithmes proposés par la librairie standard
Travaux pratiques : utilisation des conteneurs standards et des algorithmes associés
Programmation fonctionnelle en C++ et moteur de binding
Le concept de lambda
Les différents types de captures proposés
Travaux pratiques : application des lambda à la manipulation de conteneurs STL
Le bind C++
Travaux pratiques : utilisation du module std::bind
Manipulation du système de fichiers
La librairie <filesystem> introduite par C++ ISO 2017
Utilisation de path
Fonctions de convenances
Travaux pratiques : mise en oeuvre d'un programme permettant de lister le contenu d'un disque
Couplage avec la librairies de manipulation de flux (istream et ostream)
Programmation multi-tâches en C++
Pourquoi programmer en multi-tâches ?
Qu'est ce que thread et qu'est-ce qui le différencie d'un processus ?
La librairie <thread>
Connaître les spécificités multi-tâches du système d'exploitation utilisé
Les mécanismes de synchronisation des accès concurrents
RAII et la gestion des verrous
Problèmes de performances en cas de mauvaise stratégie de synchronisation
Opérations atomiques
Utilisation de local storage
Travaux pratiques : développement d'un programme multitâches et synchronisation des accès concurrents