Retour aux cours
AI013 Professional

Tutoriel C++ moderne

Ce tutoriel vise à fournir aux développeurs expérimentés une référence rapide aux nouvelles fonctionnalités de C++11/14/17/20. Il couvre les améliorations de facilité d'utilisation du langage, les progrès en temps d'exécution, de nouveaux conteneurs, les pointeurs intelligents et la gestion de mémoire, les expressions régulières, la programmation concurrente, ainsi qu'un aperçu de C++20.

4.8
30.0h
318 étudiants
2 j'aime
Intelligence Artificielle
Commencer à apprendre

Aperçu du cours

📚 Résumé du contenu

Ce tutoriel est conçu pour offrir aux développeurs expérimentés une référence rapide sur les nouvelles fonctionnalités de C++11/14/17/20. Le contenu couvre les améliorations de la facilité d'utilisation du langage, les gains de performance à l'exécution, l'utilisation de nouveaux conteneurs, des pointeurs intelligents et la gestion de mémoire, les expressions régulières, la programmation concurrente, ainsi qu'un aperçu de C++20.

Mettez-vous rapidement à jour sur C++11/14/17/20 et franchissez la porte d'entrée vers la programmation moderne en C++.

Auteur : 欧长坤 (Ou Changkun)

Remerciements : Ce travail est publié sous licence CC BY-NC-ND 4.0. Remerciements à tous les contributeurs GitHub et aux communautés associées.

🎯 Objectifs d'apprentissage

  1. Identifier et vérifier l'environnement du compilateur C++ et l'architecture cible à l'aide d'outils en ligne de commande.
  2. Expliquer la compatibilité standard et l'historique de chevauchement entre C (C89, C99, C11) et C++ (C++98, C++1x).
  3. Mettre en œuvre un lien interlangage fonctionnel en utilisant des fichiers d'en-tête extern "C" et des flux de compilation multistages.
  4. Résoudre les ambiguïtés liées aux pointeurs à l'aide de nullptr et implémenter une logique exécutée à la compilation à l'aide de constexpr et if constexpr.
  5. Simplifier les déclarations complexes à l'aide de auto, decltype et de l'aliasing de type (using) tout en assurant une conception robuste orientée objet avec override et final.
  6. Concevoir un code hautement générique à l'aide de modèles variadiques, d'expressions de pliage et de déduction de paramètres de modèle non-types.
  7. Définir et implémenter des expressions Lambda en utilisant divers modes de capture (valeur, référence, expression et générique).
  8. Utiliser std::function et std::bind pour créer des enveloppes de fonctions flexibles et des applications partielles de fonctions.
  9. Catégoriser les expressions en Lvalues, Prvalues et Xvalues, et appliquer la sémantique de transfert pour optimiser la gestion des ressources des classes.
  10. Différencier les modèles de mémoire et les cas d'utilisation de std::array (taille fixe, pile) et de std::vector (taille dynamique, tas).

Leçons