Formation C++
Détails :
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