Logo de l'organisme de formation

ENTREZ DANS L'UNIVERS ESIC

Représentation de la formation : Programmation C++, perfectionnement

Programmation C++, perfectionnement

Formation mixte
Accessible
Durée : 28 heures (4 jours)
Durée :28 heures (4 jours)
HT
Se préinscrire
Durée :28 heures (4 jours)
HT
Se préinscrire
Durée :28 heures (4 jours)
HT
Se préinscrire

Besoin d’adapter cette formation à vos besoins ?

N’hésitez pas à nous contacter afin d’obtenir un devis sur mesure !

Formation créée le 19/12/2022.

Version du programme : 2

Programme de la formation

En constante évolution, de C++98 à C++20, le langage C++ offre des mécanismes qui permettent une conception robuste et très riche. Les récentes normes C++ améliorent notablement la Standard Template Library (STL). Cette formation vous permettra d'approfondir la conception en C++ par l'apprentissage des dernières évolutions du langage et l'utilisation effective de la STL.

Objectifs de la formation

  • Découvrir les nouveautés apportées par les versions
  • Maîtriser la gestion de la mémoire, des pointeurs et des références
  • Implémenter la généricité en C++
  • Découvrir la bibliothèque standard STL
  • Utiliser les apports de la norme C++11

Profil des bénéficiaires

Pour qui
  • Concepteurs et développeurs d'applications en C++, chefs de projets, architectes logiciels.
Prérequis
  • Bonnes connaissances en développement C++

Contenu de la formation

  • Rappels
    • Classes d'allocation mémoire.
    • Construction, initialisation, embarquement d'objets.
    • Les fuites mémoire.
    • Constance, le mot-clé mutable, Lazy Computation.
    • Amitié (friendship) C++ et contrôle d'accès.
    • Destruction virtuelle.
    • Stratégie de gestion des exceptions.
    • Les espaces de nommage (namespace).
  • Les nouveautés langage de C++11
    • nullptr et autres littéraux.
    • Les directives =delete, =default.
    • Délégation de constructeurs.
    • Les énumérations "type safe".
    • Le mot-clé auto et boucle sur un intervalle.
    • Référence rvalue et impact sur la forme normale des classes C++.
    • Les lambda expressions
  • Gestion des opérateurs
    • Opérateurs binaires et unaires.
    • L'opérateur d'indirection, cas d'usage.
    • L'opérateur de référencement.
    • Les opérateurs d'incrémentation/décrémentation préfixés et post-fixés.
    • Les autres opérateurs : comparaison, affectation...
    • La surcharge de l'opérateur [], des opérateurs d'insertion (<<) et d'extraction (>>).
    • Les foncteurs et la surcharge de l'opérateur (), avantage par rapport aux fonctions.
  • Conversion et RTTI
    • Opérateurs de conversion. Constructions implicites, le mot-clé explicit.
    • Les opérateurs de casting const_cast, static_cast, reinterpret_cast.
    • Conversion dynamique et Runtime Type Information.
    • L'opérateur typeid, les exceptions liées.
    • La classe type_info.
    • Contrôle du "downcasting" à l'aide de l'opérateur dynamic_cast.
  • La généricité
    • Introduction aux patrons de classe. Généricité et préprocesseur.
    • Fonction générique. Classe générique. Composition générique. Généralisation générique.
    • Spécialisation partielle et totale.
    • Introduction à la méta-programmation.
    • La généricité, principe fédérateur des librairies STL et Boost.
  • La STL (Standard Template Library)
    • Composants de la STL : types complémentaires, conteneurs, algorithmes, itérateurs, objets fonctions, les adaptateurs.
    • Les chaînes de caractères STL, la classe template basic_string et ses spécialisations.
    • Les conteneurs séquentiels et associatifs : définition, rôle et critères de choix.
    • Les allocateurs et la gestion de la mémoire des conteneurs.
    • Les méthodes d'insertion, de suppression, d'itération et d'accès aux principaux conteneurs : Vector, List, Set, Stack...
    • Le concept d'itérateur. Parcours d'un conteneur.
    • Les différents groupes d'algorithmes STL : non mutants, mutants, de tri et de fusion, numériques.
    • Manipulation de conteneurs (manipulation, recherche de valeurs...).
    • Paramétrer les algorithmes génériques par des objets "fonction".
    • Les "adapteurs" et la modification du comportement d'un composant.
    • La STL et les traitements sur les flux (fichiers, mémoire...).
    • Principe du RAII : les pointeurs automatiques et la classe auto_ptr.
    • Les exceptions standard de la STL.
  • Les nouveautés C++11 de la librairie standard
    • Evolution historique : Boost --> TR1 --> C++11.
    • Les nouveaux conteneurs : array, forward_list, unordered_set, unordered_map.
    • La classe tuple.
    • Les pointeurs intelligents (smart pointer) : shared_ptr, weak_ptr, unique_ptr.
    • Les nouveaux foncteurs et binders.
    • Introduction à la gestion des threads.
    • Les expressions régulières.
  • Boost et ses principes
    • La Pointer Container Library (destruction des données pointées d'un conteneur).
    • Les structures de données boost::any et boost::variant.
    • Programmation événementielle (connexions et signaux).
    • Gestion des processus, mécanismes de communication interprocessus et mémoire partagée.
  • Utilisation avancée de l'héritage
    • Héritage versus embarquement. Héritage privé. Héritage protégé.
    • Exportation de membres cachés avec la Clause Using.
    • Héritage multiple et gestion des collisions de membres.
    • Héritage en diamant. Héritage virtuel et dynamic_cast.
    • Principes de conception : substitution de Liskov, principe d'ouverture/fermeture, inversion des dépendances.
    • Règles d'implémentation des interfaces en C++.
Équipe pédagogique

Nos formations dont animées par des experts reconnus dans leur domaine possédant une expérience sur le terrain significative et des compétences pédagogiques reconnues.

Suivi de l'exécution et évaluation des résultats
  • Entretien permettant l’analyse des besoins des participants et/ou questionnaire de positionnement
  • L’évaluation des compétences est réalisée : Par des exercices pratiques et/ou mises en situation, tout au long de la formation Par un exercice de synthèse et/ou un questionnaire d’auto-évaluation et/ou une certification, en fin de formation
  • Questionnaire de satisfaction à chaud en fin de formation, et à froid à 3 mois
  • Feuille de présence émargée par demi-journée par les stagiaires et le formateur
  • Certificat de réalisation de l’action de formation.
Ressources techniques et pédagogiques
  • Méthode participative
  • Étude de cas / Mise en situation.
  • Exposé et réflexion sur ses propres projets
  • Exposés, aides visuelles, support de cours, exercices pratiques d’utilisation
  • Questions/réponses entre les stagiaires et le formateur

Qualité et satisfaction

https://esic-online.com/qualite/

Lieu

ESIC MALAKOFF 36-38 avenue Pierre Brosolette 92240 MALAKOFF

Délai d'accès

2 semaines

Accessibilité

Les personnes atteintes de handicap souhaitant suivre cette formation sont invitées à nous contacter directement, afin d’étudier ensemble les possibilités de suivre la formation.