Formation C++ Programmation Avancée Expert

Public admis

  • Salarié en Poste
  • Demandeur d'emploi
  • Entreprise
  • Etudiant

Financements

Eligible CPF Votre OPCO Financement personnel

Objectifs de la formation

Cette formation C++ Programmation Avancée Expert vous donne les connaissances et compétences nécessaires pour :

  • Maîtriser les meilleures pratiques concernant l’utilisation des classes
  • Comprendre le besoin et les pièges des conversions (cast)
  • Comprendre l’intérêt du Run-time type information (RTTI)
  • Maîtriser l’utilisation des pointeurs (sur membres, smart pointers, etc.)
  • Savoir mettre en œuvre les expressions lambdas
  • Programmer efficacement les exceptions
  • Savoir programmer et utiliser les templates et certains idiomes
  • Savoir mettre en œuvre le multi-threading
  • Gérer un objet qui se comporte comme une fonction (foncteur)
  • Utiliser la puissance de la bibliothèque STL (Standard Template Library)
  • Connaître les dernières nouveautés du C++20/23

PLB CONSULTANT


Informatique et Management
Voir la fiche entreprise

Tarif

A partir de 2 360,00 €

Durée 4 jours (28h)
Modes
  • Centre
  • Entreprise
  • Distance
Sessions
Lieux Partout en France

PLB CONSULTANT


Informatique et Management
Voir la fiche

Tarif

A partir de 2 360,00 €

Durée 4 jours (28h)
Modes
  • Centre
  • Entreprise
  • Distance
Sessions
Lieux Partout en France

Description

Le C++ est un langage très technique et très riche. Il faut du temps pour le maîtriser car la syntaxe du C, conjuguée avec la mécanique des pointeurs mémoire, la programmation objet et les puissantes bibliothèques demandent une attention de tous les instants.

Cette formation C++ Programmation Avancée Expert vous permettra de maîtriser le langage C++, jusqu’à la version C++23

Programme

Rappels sur les classes en C++

Forme canonique d'une classe
Rôle du constructeur de copie
Surcharge de l'opérateur d’affectation
Constructeurs et allocation dynamique de mémoire
Intérêt d'un destructeur virtuel
Pièges à éviter

Travaux Pratiques :Exécution d'exemples pédagogiques illustrant les concepts présentés

Les pointeurs sur membres de classes

Syntaxe des pointeurs sur membres de classes
Mise en œuvre
Travaux Pratiques :Utilisation de pointeurs sur méthodes pour effectuer des calculs mathématiques

Utilisation avancée de l’héritage

Comparaison héritages public, privé et protégé
Héritages multiple et multiple répété
Héritage virtuel et conséquences
Principe de substitution de Liskov
Travaux Pratiques :Mise en œuvre d’un héritage multiple répété avec polymorphisme

L’identification de type à l'exécution (RTTI)

Principe et cas d'utilisation
Utilisation du dynamic_cast pour effectuer un downcast dans une hiérarchie de classes
Utilisation de l'opérateur typeid et de la classe type_info
Travaux Pratiques :Mise en œuvre de RTTI pour effectuer un affichage spécifique d'un objet faisant partie d'une hiérarchie de classes

Les conversions en C++

Présentation des conversions, syntaxe
Utilisation du const_cast pour enlever un caractère const
Utilisation du static_cast pour effectuer une conversion standard
Utilisation du reinterpret_cast pour effectuer une conversion forte
Utilisation du dynamic_cast dans une hiérarchie de classes
Conversion via constructeurs ou l’opérateur de conversion
Rôle du mot-clé explicit
Travaux Pratiques :Choix du type de cast et mise en œuvre dans différentes situations

Les templates

Rappels sur les templates
Avantages/inconvénients
Instanciation implicite vs explicite
Surcharge de fonctions templates
Paramètres templates par défaut
Spécialisation partielle ou totale des templates
Assertions statiques avec static_assert
Les variadic templates
Les variables templates
Les concepts et contraintes
Travaux Pratiques :Mise en œuvre d'une fonction template avec surcharge et spécialisation
Mise en œuvre d'une classe template avec spécialisation complète
Mise en œuvre d'une classe template template avec spécialisation partielle
Mise en œuvre des variadic templates
Mise en œuvre des concepts et contraintes sur un template

Les idiomes et la méta-programmation

Analyse de quelques idiomes :Traits, Policy, SFINAE, CRTP 
Méta-programmation : comment exécuter à la compilation
Les mot-clés constexpr et consteval
Avantages/inconvénients
Optimisations
Travaux Pratiques :Mise en œuvre de chacun des 4 idiomes étudiés
Mise en œuvre de la méta-programmation pour effectuer des calculs mathématiques par le compilateur

Les pointeurs intelligents (smart pointers)

Principe de la gestion RAII des ressources
Danger des pointeurs bruts
Intérêt des smart pointers
Mise en œuvre de unique_ptr, shared_ptr, weak_ptr
Utilisation de make_unique et make_shared
Mise en œuvre d’un destructeur personnalisé
Travaux Pratiques (à titre indicatif)Mise en œuvre, dans une petite application, de la technique RAII par remplacement des pointeurs bruts par des pointeurs intelligents.

La gestion des exceptions

Principe du traitement des anomalies
Utilisation des mots-clés try, catch et throw
Traiter les exceptions sur place
Propager les exceptions
Lever une exception
Créer ses propres classes d’exception
Le mot-clé noexcept
Échange d’exceptions entre threads avec std ::exception_ptr
Travaux Pratiques (à titre indicatif)Calcul de la somme des soldes mensuels d’un compte bancaire par lecture d’un fichier CSV avec mise en œuvre d’un traitement sur place d’exceptions puis en propageant les exceptions à la fonction appelante

Les fonctions et foncteurs

Retour de type auto d’une fonction
Rôle de decltype
Principe du copy ellision avec RVO (Return Value Optimization)
Utilisation d'adaptateurs de fonctions unaires et binaires
Principe et intérêt des foncteurs
Foncteurs prédéfinis dans la bibliothèque standard
Travaux Pratiques :Mise en œuvre du RVO dans une fonction
Mise en œuvre d'un foncteur avec l'algorithme for_each pour afficher le contenu d'un vector

La programmation fonctionnelle avec les expressions lambdas

Les lambda-expressions : syntaxe, typage, utilisation
La gestion des fermetures (closures) liées au contexte 
Les lambdas génériques
Travaux pratiques :Mise en œuvre des expressions lambda en remplacement des foncteurs
Mise en œuvre d’expressions lambdas simples, puis génériques

Utilisation des références rvalue

Comparaison lvalue/rvalue
Rappels sur les références lvalue
Utilité des adaptateurs de référence
Définition des rvalue références
Applications des rvalue références : move semantics et perfect forwarding
Bonne utilisation de std::move et std::forward
Les adaptateurs de référence std ::reference_wrapper
Les signature reference qualifiers
Travaux Pratiques :Mise en œuvre des références rvalue pour la création et la copie d'objet par déplacement

Utilisation des threads

Déclarer et exécuter un thread 
Cible d’un thread : fonction, foncteur, lambda
Passage de paramètres à la cible d’un thread
Détachement d’un thread
Fonctions gérant le thread courant : yield , get_id , sleep_for, sleep_until
Exclusion mutuelle : mutex, timed_mutex, shared_mutex, etc.
Obtention d’un verrou avec : try_lock, lock
RAII avec les mutex : lock_guard, unique_lock, shared_lock
Exécution unique avec once_flag, call_once
Les variables conditionnelles
Futures/Asynchronisme : promise, packaged_task, future, shared_future, async, etc.
Les objets de type std ::atomic
Rôle des smart pointers atomic_shared_ptr et atomic_weak_ptr
Le mot-clé thread_local
Travaux Pratiques :Refactoring d’un programme de calcul en multi-threading pour améliorer les performances
Mise en œuvre de mutex pour éviter la corruption de données dans l’accès à une multimap
Utilisation de promise et future pour communication asynchrone entre threads

Les coroutines

Comparaison fonction/coroutine
Mise en œuvre des opérateurs co_await, co_yield, co_return
Rôle de std ::coroutine_handle
Applications des coroutines
Travaux Pratiques :Mise en œuvre d’un générateur de nombres avec une coroutine

Évolutions dans la bibliothèque STL

Les nouveaux itérateurs cbegin et cend
Les tableaux à taille fixe avec std ::array
Les nouvelles collections associatives : unordered_map et unordered_set
Listes simplement chaînées
Le conteneur tuple
Adaptateurs d'itérateurs, stream itérateurs
Les nouveaux algorithmes ensemblistes
Travaux Pratiques :Mise en œuvre de quelques conteneurs, d'algorithmes

Autres nouveautés de C++20/23

Les modules et partitions
L’opérateur de comparaison spaceship
Initialisateurs désignés
Exceptions statiques
Pattern matching avec le mot-clé inspect
Le nouvel espace de noms std ::views
Le mot-clé constinit
Travaux Pratiques :Démonstration de ces nouveautés sur quelques exemples

Prérequis

Une expérience de développeur en programmation C++ est essentielle pour tirer pleinement profit de cette formation. Avoir suivi la formation C++ Programmation objet en C++ (DPOC) ou posséder un niveau équivalent est un minimum.

Public

Cette formation C++ s'adresse aux développeurs.

Ces formations pourraient vous intéresser

Formation Adobe After Effects

Proposé par BELFORMATION

Objectifs de la formation

  • Maîtrise des fonctionnalités de base d’After Effects.
  • Animation et effets visuels professionnels créatifs.
  • Contrôle précis avec calques et masques d’éléments.
  • Intégration graphique, images et vidéos dans compositions artistiques.
  • Animation avancée de textes et d’objets visuels.
  • Exportation divers formats, résolutions et optimisation flux travail.
Tarif

A partir de 1 500,00 €

Durée

5j / 35h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

Concrètement, à l'issue de cette formation Langage C# avancé vous serez en mesure de:

  • Créer et déployer un service Windows
  • Optimiser le code de vos applications
  • Programmer en des application multithreads
  • Implémenter des WebServices SOAP et REST
  • Utiliser les sockets pour  la programmation réseau
  • Utiliser WPF
  • Utiliser LINQ dans un programme C# 
Tarif

A partir de 2 420,00 €

Durée

4j / 28h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

  • Exécuter en toute sécurité des interventions sur des installations photovoltaïques
  • Gérer et appliquer la réglementation selon la norme NF C 18-510
Tarif

A partir de 1 390,00 €

Durée

3j / 21h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

  • Pendant la formation, le formateur évalue la progression pédagogique des participants via des QCM, des mises en situation et des travaux pratiques. Les participants passent un test de positionnement avant et après la formation pour valider leurs compétences acquises.
Tarif

Contacter l'organisme

Durée

3 jours (21 heures)

Modes
  • Entreprise
  • Distance
  • Centre

Objectifs de la formation

  • Mettre en œuvre les modélisations avancées (taux)
  • Mettre en œuvre les techniques de CVA et les risques de contrepartie
  • Etudier les principes de gestion des risques avancés
  • Assimiler les stratégies quantitatives de gestion d'actif
  • Pratiquer les outils du contrôle optimal stochastique
Tarif

A partir de 4 800,00 €

Durée

80 heures

Modes
  • Entreprise

Objectifs de la formation

  • Connaître les principes fondamentaux du design vectoriel
  • Comprendre l’interface du logiciel et savoir naviguer efficacement
  • Maîtriser les outils de création et de modification d’objets
  • Exploiter les fonctionnalités avancées : effets spéciaux, filtres et calques
  • Intégrer les techniques de création de typographie et d'illustration avancées
Tarif

A partir de 1 650,00 €

Durée

3 jours

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

Analyser le risque électrique et savoir s’en protéger.


Organiser et réaliser des travaux d’ordre non électrique en toute sécurité dans un environnement présentant des risques électriques.


Évaluer et manipuler du matériel et outillage de façon adaptée aux risques électriques.


Rendre compte de son activité.
Tarif

A partir de 537,00 €

Durée

1j / 2h

Modes
  • Entreprise
  • Distance

Objectifs de la formation

  • Intégrer un script à une page HTML
  • Utiliser les types primitifs du langage Javascript et leurs fonctions
  • Utiliser le DOM pour parcourir et modifier la structure d'une page
  • Gérer des événements utilisateur
  • Valider les données saisies dans un formulaire
  • Stocker des données dans le navigateur
  • Échanger des données avec un serveur via des API REST
  • Exploiter l'API FileReader pour lire des fichiers en local
  • Interagir avec des contenus multimédias
  • Mettre en œuvre l'API de géolocalisation
Tarif

Contacter l'organisme

Durée

4j / 28h

Modes
  • Centre
  • Entreprise
  • Distance

Objectifs de la formation

À l'issue de cette formation Designing Cisco Data Center Infrastructure vous aurez acquis les connaissances et les compétences nécessaires pour : 

  • Faire des choix de conception pour optimiser les performances de l'infrastructure du centre de données, la virtualisation, la sécurité et l'automatisation
  • Maîtriser les connaissances pratiques et théoriques nécessaires pour concevoir un centre de données évolutif, fiable et intelligent basé sur les technologies Cisco
  • Se qualifier pour des postes de niveau professionnel dans le domaine très demandé des environnements de centres de données d'entreprise
  • Décrire les options et les protocoles de transfert de la couche 2 et de la couche 3 utilisés dans un centre de données
  • Décrire les options de conception des racks, les modèles de trafic et l'accès, l'agrégation et le noyau de la couche de commutation du centre de données
  • Décrire la technologie Cisco Overlay Transport Virtualization (OTV) qui est utilisée pour interconnecter les centres de données
  • Décrire le protocole de séparation Locator/ID
  • Concevoir une solution qui utilise le réseau local extensible virtuel (VXLAN) pour le transfert du trafic
  • Décrire les options de redondance matérielle ; comment virtualiser le réseau, les fonctions de calcul et de stockage ; et la mise en réseau virtuelle dans le centre de données
  • Décrire les solutions qui utilisent des extensions de fabric et comparer Cisco Adapter Fabric Extender (FEX) avec la virtualisation entrée/sortie à racine unique (SR-IOV : single root input/output virtualization)
  • Décrire les menaces et les solutions de sécurité dans le centre de données
  • Décrire les technologies avancées de sécurité des centres de données et les best practices
  • Décrire la gestion et l'orchestration des appareils dans le centre de données
  • Décrire les options de stockage pour la fonction de calcul et les différents niveaux de RAID (Redundant Array of Independent Disks) du point de vue de la haute disponibilité et des performances
  • Décrire les concepts, les topologies, l'architecture et les termes de l'industrie Fibre Channel
  • Décrire Fibre Channel over Ethernet (FCoE)
  • Décrire les options de sécurité dans le réseau de stockage
  • Décrire les options de gestion et d'automatisation de l'infrastructure de réseau de stockage
  • Décrire les serveurs UCS Cisco et les cas d'utilisation pour diverses plateformes UCS Cisco
  • Expliquer les options de connectivité pour les interconnexions en tissu pour les connexions vers le sud et vers le nord
  • Décrire la solution hyperconvergente et les systèmes intégrés
  • Décrire les paramètres de l'ensemble du système pour la mise en place d'un domaine UCS Cisco
  • Décrire le contrôle d'accès basé sur les rôles (RBAC : role-based access control) et l'intégration avec les serveurs d'annuaire pour contrôler les droits d'accès sur Cisco UCS Manager
  • Décrire les pools qui peuvent être utilisés dans les profils de service ou les modèles de profils de service sur Cisco UCS Manager
  • Décrire les différentes politiques dans le profil de service
  • Décrire les politiques d'interface Ethernet et Fibre Channel et les technologies réseau supplémentaires
  • Décrire les avantages des modèles et la différence entre les modèles initiaux et les modèles mis à jour
  • Décrire les outils d'automatisation des centres de données
Tarif

A partir de 4 140,00 €

Durée

5j / 35h

Modes
  • Centre
  • Entreprise
  • Distance

Habilitation électrique HE Essai

Proposé par GROUPE LEXOM

Objectifs de la formation

  • Réaliser en toute sécurité des interventions sur les équipements électroniques en plateforme d'essais ou laboratoire en haute tension
  • Gérer et appliquer la réglementation selon la norme NF C 18-510
Tarif

A partir de 1 390,00 €

Durée

4j / 25h

Modes
  • Centre
  • Entreprise
  • Distance

Je cherche à faire...