Support & Downloads

Quisque actraqum nunc no dolor sit ametaugue dolor. Lorem ipsum dolor sit amet, consyect etur adipiscing elit.

s f

Contact Info
198 West 21th Street, Suite 721
New York, NY 10010
youremail@yourdomain.com
+88 (0) 101 0000 000
Follow Us

C++ - Expertise

réf : DEV-CEX
Formation Sécurité - Systèmes & réseaux

Objectif de formation : Maîtriser les concepts avancés du langage C++.

Objectifs pédagogiques

  • Utiliser des bonnes pratiques concernant l’usage des classes
  • Connaître le besoin et les pièges des conversions
  • Connaître l’intérêt du Run-time type information
  • Comprendre l’utilisation des pointeurs
  • Programmer les exceptions de manière efficace
  • Comprendre comment manipuler les templates & les design patterns
  • Gérer un objet qui se comporte comme une fonction
  • Déployer la puissance de la bibliothèque STL
  • Concevoir des idiomes
  • Appréhender les possibilités de la bibliothèque Boost
  • Comprendre les principales nouveautés du C++11

Pré-requis

  • Expérience pratique de programmation C++

Public concerné

Développeurs, ingénieurs…

Programme

  • Constructeurs & gestion de la mémoire
  • Forme canonique d’une classe
  • Rôle du constructeur de copie
  • Surcharge de l’opérateur d’affectation
  • Intérêt d’un destructeur virtuel
  • Pièges et erreurs

Travaux Pratiques

Exécution d’exemples pédagogiques illustrant les concepts présentés

  • Présentation des conversions, syntaxe
  • Const_cast
  • Static_cast
  • Reinterpret_cast
  • Dynamic_cast

Travaux Pratiques

Détermination du type de cast et déploiement dans différentes situations

  • Concepts clés et cas d’usage
  • Usage du dynamic_cast : réalisation d’un downcast dans une hiérarchie de classes
  • Opérateur typeid & classe type_info

Travaux Pratiques

Déploiement de RTTI pour effectuer un affichage spécifique d’un objet faisant partie d’une hiéarchie de classes

  • Syntaxe des pointeurs sur membres de classes
  • Déploiement

Travaux Pratiques

Manipulation de pointeurs

  • Danger des pointeurs nus
  • Concept de la gestion de ressources
  • Rôles des smart pointers
  • Raisons de l’obsolescence de auto_ptr
  • Implémentation de unique_ptr, shared_ptr et weak_ptr

Travaux Pratiques

Utilisation et déploiement des pointeurs intelligents

  • Concept d’exceptions
  • Classes d’exceptions
  • Lever une exception
  • Gestionnaires d’exceptions
  • Liste d’exceptions
  • Hiérarchies d’exceptions
  • Classes d’exceptions standards
  • Constructeurs & exceptions
  • Exceptions & gestion des ressources
  • Best practices

Travaux Pratiques 

Implémentation d’une gestion d’exceptions dans une application effectuant des entrées-sorties

  • Introduction
  • Forces & faiblesses
  • Syntaxe des templates de fonctions
  • Syntaxe des templates de classes
  • Syntaxe des templates de méthodes
  • Instanciation des templates de fonctions
  • Instanciation des templates de classes
  • Spécialisation partielle ou totale des templates

Travaux Pratiques 

Implémentation d’une fonction template, d’une classe template puis d’une classe template template

  • Introduction des patterns du GoF
  • Patterns de création
  • Patterns de structure
  • Patterns de comportement

Travaux Pratiques

Manipulation des différents patterns

  • Introduction
  • Rôles des foncteurs
  • Foncteurs prédéfinis dans la bibliothèque standard
  • Usage d’adaptateurs de fonctions unaires & binaires

Travaux Pratiques

Implémentation d’un foncteur dans un algorithme

  • Premiers pas avec la Standard Template Library
  • Conteneurs
  • Allocateurs
  • Itérateurs
  • Algorithmes
  • Entrées-sorties

Travaux Pratiques

Déploiement de quelques conteneurs, d’algorithmes & template d’entrées-sorties

  • Traits
  • Policy
  • SFINAE
  • CRTP : pour le polymorphisme statique

Travaux Pratiques

Implémentation des différents idiomes rencontrés

  • Comment exécuter à la compilation
  • Forces & faiblesses
  • Optimisations

Travaux Pratiques

Implémentation de la méta-programmation dans des cas d’études

  • Introduction
  • static_assert
  • property_map
  • smart_ptr
  • tuple
  • any
  • variant
  • threads
  • interprocess
  • mpl

Travaux Pratiques

Mise en pratique de plusieurs templates

  • Mot-clés auto, decltype & constexpr
  • Définition des rvalue références
  • Application des rvalue références : déplacement & transfert parfait
  • Utilisation de std::move & std::forward
  • Les fonctions lambda
  • Les variadic templates
  • Initialisation des données membres non-statiques
  • Alias de template
  • Constructeurs délégués
  • Déclarations étendues de l’amitié
  • Surcharge explicite de la virtualité
  • Constante nullptr
  • « Range-based » for
  • Opérateurs de conversion explicites
  • Tour d’horizon des types POD (Plain Old Data) revisités
  • Types locaux et non nommés comme arguments template
  • Énumérations à typage fort
  • Fonctions par défaut et supprimées
  • Espaces de nom inline
  • Propagation des exceptions

Travaux Pratiques

Mise en pratiques des nouveaux outils de C++

  • Introduction
  • Présentation des Best Practices

Équipe pédagogique

Professionnel expert technique & pédagogique

Moyens pédagogiques et techniques

  • Espace intranet de formation.
  • Documents supports de formation projetés.
  • Exposés théoriques
  • Étude de cas concrets
  • Mise à disposition en ligne de documents supports à la suite de la formation.

Dispositif de suivi

  • Émargement numérique.
  • Mises en situation.
  • Formulaires d’évaluation de la formation.
  • Certificat de réalisation de l’action de formation.

Vous avez une question ?

    Jours

    4 (28 heures)

    Prix

    2380 € HT

    Télécharger