> Formations > Technologies numériques > Développement logiciel > Python, C, C++ > Formation Programmation C++, perfectionnement > Formations > Technologies numériques > Formation Programmation C++, perfectionnement
Formation incontournable

Programmation C++, perfectionnement

Programmation C++, perfectionnement

Télécharger au format pdf Partager cette formation par e-mail 2


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.


Inter
Intra
Sur mesure

Cours pratique en présentiel ou en classe à distance

Réf. POP
Prix : 2390 € H.T.
  4j - 28h
Pauses-café et
déjeuners offerts




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 pédagogiques
À l’issue de la formation, le participant sera en mesure de :
  • 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

Public concerné
Concepteurs et développeurs d'applications en C++, chefs de projets, architectes logiciels.

Prérequis
Bonnes connaissances en développement C++, ou connaissances équivalentes à celles apportées par le stage "Programmation Objet en C++" (réf. C++). Expérience requise.
Vérifiez que vous avez les prérequis nécessaires pour profiter pleinement de cette formation en faisant  ce test.

Programme 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.
Travaux pratiques
Réécriture d'un code C++ existant en C++11, comparaison des deux implémentations.

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.
Travaux pratiques
Création de foncteurs et de proxies (libération mémoire, comptage de références) avec les opérateurs étudiés.

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.
Travaux pratiques
Mise en œuvre des idiomes "is-a" et "is-kind-of" avec 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.
Travaux pratiques
Démarrage de l'étude de cas qui sera complétée avec la STL. Mise en œuvre de la composition et de la généralisation génériques. Création de plug-ins génériques.

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.
Travaux pratiques
Implémentation des relations avec les collections de la STL. Utilisation d'algorithmes standard quelconques.

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.
Travaux pratiques
Mise en œuvre de la robustesse avec les smart pointers. Utilisation d'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.
Travaux pratiques
Amélioration de l'implémentation de l'étude de cas par l'utilisation la Pointer Container Library.

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++.
Travaux pratiques
Combinaison de l'héritage multiple, privé et de l'exportation pour concevoir des classes robustes et hautement évolutives.


Modalités pratiques
Travaux pratiques
Le cours se déroulera sur des stations de travail sous Windows/Visual C++. De nombreux exercices permettront de mettre en oeuvre les thèmes abordés plus spécifiquement sous l'angle de la conception.

Modalités d'évaluation
Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de QCM, mises en situation, travaux pratiques…
Le participant complète également un test de positionnement en amont et en aval pour valider les compétences acquises.

Parcours certifiants associés
Pour aller plus loin et renforcer votre employabilité, découvrez les parcours certifiants qui contiennent cette formation :

Solutions de financement
Pour trouver la meilleure solution de financement adaptée à votre situation : contactez votre conseiller formation.
Il vous aidera à choisir parmi les solutions suivantes :
  • Le plan de développement des compétences de votre entreprise : rapprochez-vous de votre service RH.
  • Le dispositif FNE-Formation.
  • L’OPCO (opérateurs de compétences) de votre entreprise.
  • Pôle Emploi sous réserve de l’acceptation de votre dossier par votre conseiller Pôle Emploi.
  • Le plan de développement des compétences de votre entreprise : rapprochez-vous de votre service RH.
  • Le dispositif FNE-Formation.
  • L’OPCO (opérateurs de compétences) de votre entreprise.
  • Pôle Emploi sous réserve de l’acceptation de votre dossier par votre conseiller Pôle Emploi.

Avis clients
4,7 / 5
Les avis clients sont issus des évaluations de fin de formation. La note est calculée à partir de l’ensemble des évaluations datant de moins de 12 mois. Seules celles avec un commentaire textuel sont affichées.
LUCAS F.
10/05/22
5 / 5

Le formateur se met au niveau de chaque stagiaire et répond à chaque question. On pourrait aller un peu plus vite le premier jour ou au moins la première matinée, les autres jours la vitesse de parcours des sujets est bien équilibré. Les slides du cours sont clairs et concis, mais il manque un sommaire pour se repérer facilement.
NICOLAS T.
10/05/22
5 / 5

Cela faisait longtemps que je n’avais pas pratiqué le c++, grâce à cette formation ça m’a rafraichit les concepts du c++ et ça m’a apporté beaucoup de concepts que je ne connaissais pas. De plus il y avait une très bonne ambiance.
DIMITRI T.
10/05/22
5 / 5

Les cours sont assez succins pour rester dans le thème des exercices et permettent de discuter de manière plus libre sur des points spécifiques que l’on voudrait aborder. Le nombre de sujets est assez large (voir peut être un peu trop large pour 4 jours). On apprends en plus des recettes de cuisine en plus de la programmation en C++, c’est formidable.




Horaires
En présentiel, les cours ont lieu de 9h à 12h30 et de 14h à 17h30.
Les participants sont accueillis à partir de 8h45. Les pauses et déjeuners sont offerts.
En classe à distance, la formation démarre à partir de 9h.
Pour les stages pratiques de 4 ou 5 jours, quelle que soit la modalité, les sessions se terminent à 15h30 le dernier jour.

Dates et lieux
Pour vous inscrire, sélectionnez la ville et la date de votre choix.
Du 13 au 16 décembre 2022 *
FR
Classe à distance
Session garantie
S’inscrire
Du 13 au 16 décembre 2022 *
FR
Paris La Défense
Session garantie
S’inscrire
Du 3 au 6 janvier 2023
FR
Paris La Défense
S’inscrire
Du 3 au 6 janvier 2023
FR
Classe à distance
S’inscrire
Du 3 au 6 janvier 2023
FR
Lille
S’inscrire
Du 3 au 6 janvier 2023
FR
Orléans
S’inscrire
Du 10 au 13 janvier 2023
FR
Sophia-Antipolis
S’inscrire
Du 10 au 13 janvier 2023
FR
Aix-en-Provence
S’inscrire
Du 10 au 13 janvier 2023
FR
Montpellier
S’inscrire
Du 31 janvier au 3 février 2023
FR
Lyon
S’inscrire
Du 31 janvier au 3 février 2023
FR
Grenoble
S’inscrire
Du 14 au 17 février 2023
FR
Strasbourg
S’inscrire
Du 14 au 17 février 2023
FR
Nantes
S’inscrire
Du 14 au 17 février 2023
FR
Rennes
S’inscrire
Du 28 février au 3 mars 2023
FR
Paris La Défense
S’inscrire
Du 28 février au 3 mars 2023
FR
Classe à distance
S’inscrire
Du 7 au 10 mars 2023
FR
Bordeaux
S’inscrire
Du 7 au 10 mars 2023
FR
Toulouse
S’inscrire
Du 7 au 10 mars 2023
FR
Avignon
S’inscrire
Du 11 au 14 avril 2023
FR
Montpellier
S’inscrire
Du 11 au 14 avril 2023
FR
Rennes
S’inscrire
Du 11 au 14 avril 2023
FR
Nantes
S’inscrire
Du 11 au 14 avril 2023
FR
Aix-en-Provence
S’inscrire
Du 11 au 14 avril 2023
FR
Sophia-Antipolis
S’inscrire
Du 11 au 14 avril 2023
FR
Strasbourg
S’inscrire
Du 2 au 5 mai 2023
FR
Lille
S’inscrire
Du 2 au 5 mai 2023
FR
Orléans
S’inscrire
Du 2 au 5 mai 2023
FR
Classe à distance
S’inscrire
Du 2 au 5 mai 2023
FR
Paris La Défense
S’inscrire
Du 9 au 12 mai 2023
FR
Lyon
S’inscrire
Du 9 au 12 mai 2023
FR
Grenoble
S’inscrire
Du 30 mai au 2 juin 2023
FR
Bordeaux
S’inscrire
Du 30 mai au 2 juin 2023
FR
Toulouse
S’inscrire
Du 30 mai au 2 juin 2023
FR
Avignon
S’inscrire
Du 18 au 21 juillet 2023
FR
Nantes
S’inscrire
Du 18 au 21 juillet 2023
FR
Rennes
S’inscrire
Du 18 au 21 juillet 2023
FR
Strasbourg
S’inscrire
Du 25 au 28 juillet 2023
FR
Sophia-Antipolis
S’inscrire
Du 25 au 28 juillet 2023
FR
Montpellier
S’inscrire
Du 25 au 28 juillet 2023
FR
Aix-en-Provence
S’inscrire
Du 8 au 11 août 2023
FR
Paris La Défense
S’inscrire
Du 8 au 11 août 2023
FR
Lille
S’inscrire
Du 8 au 11 août 2023
FR
Orléans
S’inscrire
Du 8 au 11 août 2023
FR
Classe à distance
S’inscrire
Du 22 au 25 août 2023
FR
Grenoble
S’inscrire
Du 22 au 25 août 2023
FR
Bordeaux
S’inscrire
Du 22 au 25 août 2023
FR
Lyon
S’inscrire
Du 22 au 25 août 2023
FR
Toulouse
S’inscrire
Du 22 au 25 août 2023
FR
Avignon
S’inscrire
Du 19 au 22 septembre 2023
FR
Paris La Défense
S’inscrire
Du 19 au 22 septembre 2023
FR
Classe à distance
S’inscrire
Du 3 au 6 octobre 2023
FR
Strasbourg
S’inscrire
Du 3 au 6 octobre 2023
FR
Rennes
S’inscrire
Du 3 au 6 octobre 2023
FR
Nantes
S’inscrire
Du 17 au 20 octobre 2023
FR
Montpellier
S’inscrire
Du 17 au 20 octobre 2023
FR
Aix-en-Provence
S’inscrire
Du 17 au 20 octobre 2023
FR
Sophia-Antipolis
S’inscrire
Du 21 au 24 novembre 2023
FR
Lille
S’inscrire
Du 21 au 24 novembre 2023
FR
Grenoble
S’inscrire
Du 21 au 24 novembre 2023
FR
Orléans
S’inscrire
Du 21 au 24 novembre 2023
FR
Lyon
S’inscrire
Du 21 au 24 novembre 2023
FR
Paris La Défense
S’inscrire
Du 21 au 24 novembre 2023
FR
Classe à distance
S’inscrire
Du 5 au 8 décembre 2023
FR
Avignon
S’inscrire
Du 5 au 8 décembre 2023
FR
Toulouse
S’inscrire
Du 5 au 8 décembre 2023
FR
Bordeaux
S’inscrire