Cours de programmation C++ moderne
(github.com/federico-busato)- Ce cours s’adresse à des personnes déjà familières avec le C et la programmation orientée objet, et vise à renforcer leur maîtrise de la programmation C++
- Il couvre les bases de la programmation C++ jusqu’à la sémantique et aux concepts avancés du C++
- Il est gratuit, fréquemment mis à jour, inclut les concepts et fonctionnalités des standards récents du langage, et adopte une approche pédagogique pratique
Principaux contenus de chaque chapitre
- Concepts de base : explication des types de base du C++, des opérateurs, des règles de conversion, de la gestion de la mémoire, des fonctions et du préprocesseur.
- Programmation orientée objet : compréhension du concept de classe, de l’héritage, du polymorphisme et de la surcharge d’opérateurs.
- Templates et métaprogrammation : exploration approfondie des templates de fonctions et de classes, des utilitaires au moment de la compilation et de SFINAE.
- Unités de traduction : explication du linkage, de la One Definition Rule et des méthodes de gestion de plusieurs unités de traduction.
- Conventions de code : guide sur l’organisation de projet et les principales conventions de code.
- Écosystème : informations sur le débogage, les tests, Cmake, la documentation et d’autres outils.
- Utilitaires : aperçu des principales bibliothèques
std, des conteneurs, des itérateurs et des algorithmes. - Sujets avancés : apprentissage approfondi de la sémantique de déplacement, de la déduction de types, des smart pointers et de la concurrence.
- Optimisation : stratégies sur les concepts de base, l’optimisation du code, l’optimisation hors code et le benchmarking.
L’avis de GN⁺
Ce cours couvre tous les aspects de la programmation C++, y compris les standards les plus récents, et constitue une ressource essentielle pour aider un ingénieur logiciel débutant à progresser jusqu’à un niveau expert. Son approche centrée sur l’expérience et fondée sur des cas concrets fournit aux apprenants des connaissances pratiques, très utiles pour améliorer leurs compétences en programmation.
1 commentaires
Avis Hacker News
Le créateur de ce cours est chef d’équipe chez NVIDIA et ingénieur logiciel principal de CUDA cuSPARSE
Grand succès avec ChatGPTv4 pour écrire du code C++ moderne compatible avec CUDA
std::*pour écrire un code plus flexible.Retour en C++ après une longue pause, et les versions récentes comme C++17 sont suffisamment bonnes, mais la prise en charge de l’Unicode est décevante
En tant que développeur embarqué, cherche de bonnes ressources pour commencer à apprendre le C++
Se demande si quelqu’un peut comparer ce cours à learncpp.com
Adapté pour réapprendre des notions de C oubliées depuis l’université, mais il faudrait davantage de pratique réelle du code
Pense qu’il est difficile d’apprendre uniquement avec des slides
Les smart pointers ne devraient pas être considérés comme un « sujet avancé » en C++
newetdelete, mais qu’en pratique il est préférable d’utiliserunique_ptroushared_ptr.Se demande s’il faut utiliser
new/deleteen C++ modernenew/deleteen C++ moderne.Demande qu’on lui explique comment lire la section sur les règles de conversion