Article original : Learn C++ Programming for Beginners – Free 31-Hour Course

Le C++ est l'un des langages de programmation les plus populaires depuis plus de 30 ans. Les développeurs l'utilisent pour tout, de la création de jeux vidéo à la programmation de systèmes d'exploitation.

Nous venons de publier un cours complet de 31 heures sur le C++ sur la chaîne YouTube freeCodeCamp.org.

Daniel Gakwaya a développé ce cours. Daniel est un ingénieur logiciel expérimenté et créateur de cours.

Ce cours vous donnera une introduction complète au C++ moderne avec C++20. Vous passerez du niveau débutant à utilisateur avancé.

Voici tous les sujets abordés dans ce cours :

Chapitre 1 : Installation des outils

  • Outils
  • Installation des compilateurs C++ sur Windows
  • Installation de VS Code sur Windows
  • Configuration de Visual Studio Code pour C++ sur Windows
  • Installation des compilateurs C++ sur Linux
  • Installation de Visual Studio Code sur Linux
  • Configuration de Visual Studio Code pour C++ sur Linux
  • Installation des compilateurs C++ sur MacOs
  • Installation de Visual Studio Code sur MacOs
  • Configuration de Visual Studio Code pour C++ sur MacOs
  • Compilateurs en ligne

Chapitre 2 : Plongeons dans le vif du sujet

  • Votre premier programme C++
  • Commentaires
  • Erreurs et avertissements
  • Instructions et fonctions
  • Entrée et sortie de données
  • Modèle d'exécution des programmes C++
  • Langage de base C++ vs bibliothèque standard vs STL

Chapitre 3 : Variables et types de données

  • Introduction aux variables et types de données
  • Systèmes de numération
  • Types entiers : décimaux et entiers
  • Modificateurs d'entiers
  • Nombres fractionnaires
  • Booléens
  • Caractères et texte
  • Auto
  • Assignations
  • Résumé sur les variables et types de données

Chapitre 4 : Opérations sur les données

  • Introduction aux opérations sur les données
  • Opérations de base
  • Priorité et associativité
  • Incrémentation et décrémentation préfixée/postfixée
  • Opérateurs d'assignation composés
  • Opérateurs relationnels
  • Opérateurs logiques
  • Formatage de sortie
  • Limites numériques
  • Fonctions mathématiques
  • Types intégraux étranges
  • Résumé des opérations sur les données

Chapitre 5 : Contrôle de flux

  • Introduction au contrôle de flux
  • Instructions If
  • Else If
  • Switch
  • Opérateurs ternaires
  • Résumé du contrôle de flux

Chapitre 6 : Boucles

  • Introduction aux boucles
  • Boucle For
  • Boucle While
  • Boucle Do While

Chapitre 7 : Tableaux

  • Introduction aux tableaux
  • Déclaration et utilisation des tableaux
  • Taille d'un tableau
  • Tableaux de caractères
  • Limites des tableaux

Chapitre 8 : Pointeurs

  • Introduction aux pointeurs
  • Déclaration et utilisation des pointeurs
  • Pointeur vers char
  • Carte mémoire du programme revisitée
  • Allocation dynamique de mémoire
  • Pointeurs pendants
  • Quand new échoue
  • Sécurité des pointeurs null
  • Fuites de mémoire
  • Tableaux alloués dynamiquement

Chapitre 9 : Références

  • Introduction aux références
  • Déclaration et utilisation des références
  • Comparaison des pointeurs et des références
  • Références et const

Chapitre 10 : Manipulation de caractères et chaînes de caractères

  • Introduction aux chaînes de caractères
  • Manipulation de caractères
  • Manipulation de chaînes C
  • Concaténation et copie de chaînes C
  • Introduction à std::string
  • Déclaration et utilisation de std::string

Chapitre 11 : Fonctions

  • La règle de définition unique
  • Première prise en main des fonctions C++
  • Déclaration de fonction et définitions de fonction
  • Fichiers multiples - Modèle de compilation revisité
  • Passage par valeur
  • Passage par pointeur
  • Passage par référence

Chapitre 12 : Obtenir des résultats des fonctions

  • Introduction à l'obtention de résultats des fonctions
  • Paramètres d'entrée et de sortie
  • Retour des fonctions par valeur

Chapitre 13 : Surcharge de fonctions

  • Introduction à la surcharge de fonctions
  • Surcharge avec différents paramètres

Chapitre 14 : Fonctions lambda

  • Introduction aux fonctions lambda
  • Déclaration et utilisation des fonctions lambda
  • Listes de capture
  • Capturer tout dans le contexte
  • Résumé

Chapitre 15 : Modèles de fonctions

  • Introduction aux modèles de fonctions
  • Essai des modèles de fonctions
  • Déduction de type de modèle et arguments explicites
  • Paramètres de modèle par référence
  • Spécialisation de modèle

Chapitre 16 : Cours accéléré sur les concepts C++20

  • Introduction aux concepts C++20
  • Utilisation des concepts C++20
  • Construction de vos propres concepts C++20
  • Zoom sur la clause requires
  • Combinaison des concepts C++20
  • Concepts C++20 et auto

Chapitre 17 : Classes

  • Introduction aux classes
  • Votre première classe
  • Constructeurs C++
  • Constructeurs par défaut
  • Setters et Getters
  • Classe à travers plusieurs fichiers
  • Notation d'appel de pointeur flèche
  • Destructeurs
  • Ordre des appels de constructeurs et destructeurs
  • Le pointeur this
  • struct
  • Taille des objets

Chapitre 18 : Héritage

  • Introduction à l'héritage
  • Premier essai sur l'héritage
  • Membres protégés
  • Spécificateurs d'accès de la classe de base : Zoom
  • Spécificateurs d'accès de la classe de base - Une démonstration
  • Zoom sur l'héritage privé
  • Restauration des membres dans le contexte
  • Constructeurs par défaut avec héritage
  • Constructeurs personnalisés avec héritage
  • Constructeurs de copie avec héritage
  • Héritage des constructeurs de base
  • Héritage et destructeurs
  • Symboles réutilisés dans l'héritage

Chapitre 19 : Polymorphisme

  • Introduction au polymorphisme
  • Liaison statique avec héritage
  • Liaison dynamique avec fonctions virtuelles
  • Taille des objets polymorphes et tranchage
  • Objets polymorphes stockés dans des collections (tableau)
  • Override
  • Surcharge, substitution et masquage de fonction
  • Héritage et polymorphisme à différents niveaux
  • Héritage et polymorphisme avec membres statiques
  • Final
  • Fonctions virtuelles avec arguments par défaut
  • Destructeurs virtuels
  • Casts dynamiques
  • Fonctions et destructeurs polymorphes
  • Fonctions virtuelles pures et classes abstraites
  • Classes abstraites comme interfaces

Regardez le cours complet ci-dessous ou sur la chaîne YouTube freeCodeCamp.org (31 heures de visionnage).