Organisme de Formation aux technologies et métiers de L'informatique

Formation C++ expert, les avancées du langage (de C++ 11 à 17)

Informations générales

VEC
3 jours (21h)
1 870 €HT
repas inclus

Objectifs

Après ce cours, vous serez capable de :

  • Appréhender les nouveautés et les améliorations du langage C++11
  • Utiliser les lambda expressions
  • Exploiter les possibilités de la programmation fonctionnelle
  • Maîtriser les allocations-destructions d'objets
  • Développer une application multithreadée

Public

Ce cours s'adresse avant tout aux personnes suivantes :

  • Développeurs C++ souhaitant connaître les nouveautés définies par le standard C++11

Prérequis

Pour suivre ce cours, vous devez déjà posséder les connaissances suivantes :

  • Bonnes connaissances du langage C++
  • Une expérience pratique de la programmation avec ce langage est recommandée

Programme de la formation

Cette formation vous permettra d'assimiler les nouveautés introduites par le standard C++ 2011. Vous découvrirez les expressions lambda, exploiterez les possibilités de la programmation fonctionnelle, maîtriserez la gestion de la mémoire et exploiterez les autres nouveautés de la bibliothèque standard C++.

L'avènement de C++11

  • Les différentes normes C++98, C++03 et C++0x, C++11.
  • Les nouveautés de C++11 et les objectifs de cette norme. Le devenir de Boost, STL.
  • La question de la compatibilité des codes anciens.
  • La disponibilité des outils de développement (compilateurs, débogueurs, IDE ...).
  • Travaux pratiques   Vérification de l'outillage à l'aide d'un code C++11 fourni.

Les améliorations du langage

  • Les énumérations fortement typées.
  • Les tableaux à taille fixe.
  • Le mot-clé auto pour simplifier le typage.
  • La boucle basée sur un intervalle.
  • Autres améliorations : templates à arguments variables, pointeur nul, littéraux...
  • Travaux pratiques   Mise en œuvre des améliorations.

Les modifications au niveau des classes

  • La délégation de constructeurs, les contraintes liées à l'héritage.
  • La nouvelle sémantique du déplacement et le constructeur par déplacement (move constructor).
  • Adaptation de la forme normale des classes aux nouveautés (move constructor).
  • Les directives =delete, =default.
  • Les initialiseurs de conteneurs.
  • LeS données membres.
  • Travaux pratiques   Création de classes C++11.

L'utilisation des threads

  • Déclaration et exécution d'un thread. Attente de fin d'exécution avec join().
  • La gestion des données locales à un thread, l'usage de volatile.
  • Récupérer un résultat avec future<> et async().
  • Obtenir des informations sur les capacités d'exécution de la plateforme avec hardware_concurrency().
  • Travaux pratiques   Multithreader un code séquentiel et mesurer le gain en termes de temps d'exécution.

Autres nouveautés de la bibliothèque standard

  • La gestion du temps avec le namespace chrono.
  • Le nouveau conteneur tuple.
  • Travaux pratiques   Mise en œuvre des nouveautés.

La programmation fonctionnelle avec les lambda expressions

  • Déclaration, typage, implémentation et utilisation.
  • L'intérêt d'auto avec les lambda-expressions.
  • La gestion des fermetures (closures), avec capture par valeur ou par référence des variables liées au contexte.
  • Travaux pratiques   Exercices de programmation fonctionnelle.

La gestion mémoire et les conteneurs

  • Les smart pointers : shared_ptr, weak_ptr, unique_ptr, auto_ptr. Usage conjoint avec la STL.
  • Travaux pratiques   Mise en œuvre de la gestion mémoire C++11.
plus d'infos

Méthode pédagogique

Des exercices pratiques de programmation permettront d'appréhender les différents concepts abordés.

Méthode d'évaluation

Tout au long de la formation, les exercices et mises en situation permettent de valider et contrôler les acquis du stagiaire. En fin de formation, le stagiaire complète un QCM d'auto-évaluation.

Suivre cette formation à distance

  • Un ordinateur avec webcam, micro, haut-parleur et un navigateur (de préférence Chrome ou Firefox). Un casque n'est pas nécessaire suivant l'environnement.
  • Une connexion Internet de type ADSL ou supérieure. Attention, une connexion Internet ne permettant pas, par exemple, de recevoir la télévision par Internet, ne sera pas suffisante, cela engendrera des déconnexions intempestives du stagiaire et dérangera toute la classe.
  • Privilégier une connexion filaire plutôt que le Wifi.
  • Avoir accès au poste depuis lequel vous suivrez le cours à distance au moins 2 jours avant la formation pour effectuer les tests de connexion préalables.
  • Votre numéro de téléphone portable (pour l'envoi du mot de passe d'accès aux supports de cours et pour une messagerie instantanée autre que celle intégrée à la classe virtuelle).
  • Selon la formation, une configuration spécifique de votre machine peut être attendue, merci de nous contacter.
  • Pour les formations incluant le passage d'une certification la dernière journée, un voucher vous est fourni pour passer l'examen en ligne.
  • Pour les formations logiciel (Adobe, Microsoft Office...), il est nécessaire d'avoir le logiciel installé sur votre machine, nous ne fournissons pas de licence ou de version test.
  • Horaires identiques au présentiel.

Mis à jour le 08/11/2023