Formations informatiques à Grenoble et Sophia Antipolis

Formation C++ Programmation Orientée Objet: les compléments

Objectifs

Tester la généricité et les templates en C++.

Utiliser expressions régulières pour manipuler chaînes de caractères.

Gérer les copies et "move" en C++.

Implémenter RAII et "Smart Pointers" en C++.

Exploiter typeinfo et la réflexion en C++.

Utiliser la STL pour gérer les conteneurs et algorithmes.

Appliquer la programmation fonctionnelle avec lambdas et binding.

Manipuler le système de fichiers avec la librairie filesystem.

Programmer en multi-tâches avec la librairie thread.

Expérimenter synchronisation et performances en programmation multi-tâches.

Pré-requis

Avoir suivi la formation "Programmation Orientée Objet en C++ : les fondamentaux" ou connaître les bases de la programmation orientée objet en C++.

Participants

Développeur et chef de projets informatiques souhaitant compléter leurs connaissances sur le langage de programmation C++ ISO 2017.

Programme de formation

C++ Programmation Orientée Objet: les compléments

COMPLÉMENTS SUR LE CONCEPT DE GÉNÉRICITÉ EN C++

  1. Définition de méthodes et de classes génériques

  2. Template avec types par défaut

  3. Utilisation du mot clé typedef dans le cadre de la généricité

  4. Template à nombre variable de types

  5. Spécialisation de template

  6. Notions de "traits" et l'entête traits

MANIPULATION DE CHAÎNES DE CARACTÈRES VIA DES EXPRESSIONS RÉGULIÈRES

  1. La librairie string

  2. Qu'est qu’une expression régulière ?

  3. Le langage d'expression régulière proposé par C++

  4. Mise en correspondance, remplacement et extraction d'informations

  5. Les expressions régulières gourmandes

  6. Travaux pratiques

    • Utilisation d'expressions régulières pour réaliser des mises en correspondance, des remplacements et des extractions d’informations
  7. Compléments Boost pour la manipulation de chaînes de caractères

  8. Travaux pratiques

    • Utilisation des compléments offerts par Boost

GESTIONS DES COPIES EN C++

  1. Opérateurs de copie et constructeur par copie

  2. Correctement réaliser les copies

  3. Interdire les copies

  4. Opérateurs et constructeurs de "move"

  5. Travaux pratiques

    • Corrections de bugs relatifs à la copie d'objets et retrait des fonctionnalités de copie

RAII ET LES "SMART POINTERS"

  1. Introduction à RAII

    • Resource Acquisition Is Initialization
  2. Mise en oeuvre d'une classe générique de "Smart Pointers"

  3. Problématique des cycles de pointeur

  4. Travaux pratiques

    • Implémentation d'une classe de "Smart Pointers"
  5. Les différentes classes de "Smart Pointers" proposées en C++ ISO

  6. Travaux pratiques

    • Utilisation des classes standards de "Smart Pointers"

LA LIBRAIRIE TYPEINFO ET LA RÉFLEXION EN C++

  1. La librairie typeinfo

  2. L'opérateur typeid

  3. Transtypage dynamique

    • opérateur dynamic_cast
  4. Les autres opérateurs de transtypage

  5. Travaux pratiques

    • Mise en oeuvre d'un prototype de moteur de sérialisation

UTILISATION DE LA STL (STANDARD TEMPLATE LIBRARY)

  1. Travaux pratiques

    • Utilisation des conteneurs standards et des algorithmes associés
  2. Présentation de l'architecture STL

    • Les conteneurs, les itérateurs et les algorithmes
  3. Travaux pratiques

    • Utilisation de quelques conteneurs proposés par la STL
  4. Les différents types d'itérateurs

  5. Les différentes techniques de parcours de collections

    • Itérateurs, for_each, instruction for each...
  6. Concept de "functions objects"

  7. Travaux pratiques

    • Utilisation de "functions objects"
  8. Les différents types de collections de la STL

  9. Les conteneurs ajoutées par C++11

  10. Etude de divers algorithmes proposés par la librairie standard

PROGRAMMATION FONCTIONNELLE EN C++ ET MOTEUR DE BINDING

  1. Le concept de lambda

  2. Les différents types de captures proposés

  3. Travaux pratiques

    • Application des lambda à la manipulation de conteneurs STL
  4. Le bind C++

  5. Travaux pratiques

    • Utilisation du module std::bind

MANIPULATION DU SYSTÈME DE FICHIERS

  1. La librairie filesystem introduite par C++ ISO 2017

  2. Utilisation de path

  3. Fonctions de convenances

  4. Travaux pratiques

    • Mise en oeuvre d'un programme permettant de lister le contenu d’un disque
  5. Couplage avec le librairie de manipulation de flux

    • istream et ostream

PROGRAMMATION MULTI-TÂCHES EN C++

  1. Pourquoi programmer en multi-tâches ?

  2. Travaux pratiques

    • Développement d'un programme multitâches et synchronisation des accès concurrents
  3. Qu'est-ce que thread et qu’est-ce qui le différencie d’un processus ?

  4. La librairie thread

  5. Connaître les spécificités multi-tâches du système d'exploitation utilisé

  6. Les mécanismes de synchronisation des accès concurrents

  7. RAII et la gestion des verrous

  8. Problèmes de performances en cas de mauvaise stratégie de synchronisation

  9. Opérations atomiques

  10. Utilisation de local storage

Durée
5 jours
Lieux
Meylan Moirans Sophia Dans vos locaux Classe distancielle
Groupe de 8 personnes maximum
Demandez un devis
Cette thématique vous intéresse ?
Nos experts conçoivent votre formation sur-mesure On adore les moutons à 5 pattes !
Formations dans la même thématique