PopulaireParcours
Apprendre C++
Un cours C++ en ligne, gratuit et interactif. Tu écris du C++ à chaque leçon — bases, pointers, classes, templates — avec des indices IA quand le compilateur te crie dessus, et un certificat gratuit à la fin.
211,803+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fondamentaux
Commencer la sectionDémarrerDévelopperRéduireConstruisez une base solide avec des concepts essentiels et des compétences de baseIntroduction
4 leçons325- 01C++Défi
- 02Hello World !DéfiQuiz
- 03CommentairesQuiz
- 04Structure de base d'un programmeDéfiQuiz
Variables, partie 1
6 leçons846- 01Nombres entiersDéfiMaîtriseQuiz
- 02Nombres réelsDéfiMaîtriseQuiz
- 03Chaînes de caractèresDéfiQuiz
- 04BooléensDéfiQuiz
- 05CaractèresDéfiQuiz
- 06ConstantesDéfiQuiz
Variables - Partie 2
5 leçons334- 01Déclaration de typeDéfiQuiz
- 02Conventions de nommageQuiz
- 03Récapitulatif - Initialisation des variablesDéfi
- 04Type Casting - Partie 1DéfiQuiz
- 05Type Casting - Partie 2Quiz
Opérateurs - Partie 1
7 leçons654- 01Opérateurs arithmétiquesDéfiQuiz
- 02Opérateur moduloDéfiQuiz
- 03Incrémentation / DécrémentationDéfiQuiz
- 04Post-incrémentation / Post-décrémentationDéfiQuiz
- 05Raccourcis arithmétiquesDéfiQuiz
- 06Opérateurs de comparaisonDéfiQuiz
- 07Comparaison de chaînesQuiz
Opérateurs, partie 2
4 leçons423- 01Opérateurs logiques, partie 1DéfiQuiz
- 02Opérateurs logiques, partie 2DéfiQuiz
- 03Récapitulatif - Logique simpleDéfi
- 04Opérateurs logiques, partie 3DéfiQuiz
Prise de décision
6 leçons637- 01L'instruction IfDéfiQuiz
- 02If - ElseDéfiQuiz
- 03L'instruction SwitchDéfiQuiz
- 04Opérateur conditionnelDéfiQuiz
- 05Récapitulatif - If ElseDéfi
- 06If - Else imbriquésDéfiQuiz
Bases des entrées/sorties
5 leçons524- 01Instruction coutDéfiMaîtriseQuiz
- 02Instruction cinDéfiQuiz
- 03Saisie de chaînes de caractèresQuiz
- 04Récapitulatif - Jusqu'à 120Défi
- 05Récapitulatif - Vrai ou FauxDéfi
Calculatrice numérique
Projet4 leçons16- 01Message de bienvenueDéfiQuiz
- 02Saisie des nombresProjet
- 03Opérations de baseProjet
- 04Sortie formatéeProjet
Boucles
9 leçons760- 01Boucle For - Partie 1DéfiQuiz
- 02Boucle WhileDéfiQuiz
- 03Boucle Do WhileDéfiQuiz
- 04BreakDéfiQuiz
- 05ContinueDéfiQuiz
- 06Boucle For - Partie 2Quiz
- 07Boucles imbriquéesDéfiQuiz
- 08Boucles infiniesQuiz
- 09Récapitulatif - Entrée dynamiqueDéfi
Fonctions
7 leçons739- 01Déclarer une fonctionDéfiQuiz
- 02ParamètresDéfiMaîtriseQuiz
- 03Types de retourDéfiQuiz
- 04Surcharge de fonctionQuiz
- 05Récapitulatif - Fonction SigmaDéfi
- 06Récapitulatif - Fonction de validationDéfi
- 07Fonctions VoidDéfiQuiz
Bases des tableaux
9 leçons848- 01Déclaration de tableauxDéfiQuiz
- 02Accéder aux élémentsDéfiQuiz
- 03Modifier des élémentsDéfiQuiz
- 04Récapitulatif - Affichage formaté d'un tableauDéfi
- 05Tableaux et fonctionsQuiz
- 06Récapitulatif - Produit d'un tableauDéfi
- 07Récapitulatif - Tableau inverséDéfi
- 08Boucle for amélioréeDéfiQuiz
- 09Opérations courantes sur les tableauxDéfiQuiz
Chaînes de caractères
5 leçons441- 01Chaînes de style C, partie 1DéfiQuiz
- 02Chaînes de style C, partie 2Quiz
- 03Opérations sur les chaînesDéfiQuiz
- 04Fonctions de chaînes, partie 1DéfiQuiz
- 05Fonctions de chaînes, partie 2DéfiQuiz
Défis finaux
3 leçons37- 01Motif de nombresDéfiQuiz
- 02Détecteur de motifsDéfi
- 03Calculateur de notesDéfi
Section 2
Logique et Flux
Commencer la sectionDémarrerDévelopperRéduireDéveloppez des compétences en résolution de problèmes et créez des programmes dynamiques et interactifsPointeurs et mémoire
8 leçons757- 01Qu'est-ce qu'un pointeur ?Quiz
- 02Opérateur d'adresseDéfiQuiz
- 03Opérateur de déréférencementDéfiQuiz
- 04Pointeurs nulsDéfiQuiz
- 05Pointeurs et tableauxDéfiQuiz
- 06Mémoire dynamique avec 'new'DéfiQuiz
- 07Libérer la mémoire avec 'delete'DéfiQuiz
- 08Récapitulatif - Pratique des pointeursDéfi
Vecteurs (Tableaux dynamiques)
9 leçons861- 01Introduction à std::vectorQuiz
- 02Créer un vecteurDéfiQuiz
- 03Ajouter des élémentsDéfiQuiz
- 04Accéder aux élémentsDéfiQuiz
- 05Taille d'un vecteurDéfiQuiz
- 06Itérer avec une boucle ForDéfiQuiz
- 07Boucle For basée sur l'intervalleDéfiQuiz
- 08Supprimer des élémentsDéfiQuiz
- 09Récapitulatif - Opérations sur les vecteursDéfi
Projet : Outil de liste de tâches
Projet5 leçons1- 01Présentation du projetDéfi
- 02Ajouter une tâcheProjet
- 03Afficher les tâchesProjet
- 04Supprimer une tâcheProjet
- 05Finaliser l'outilProjet
Maps (Paires Clé-Valeur)
7 leçons644- 01Introduction à std::mapQuiz
- 02Créer une MapDéfiQuiz
- 03Accéder aux valeurs et les modifierDéfiQuiz
- 04Vérifier l'existence de clésDéfiQuiz
- 05Supprimer des pairesDéfiQuiz
- 06Parcourir une MapDéfiQuiz
- 07Récapitulatif - Fréquence des motsDéfi
Projet : Outil d'inventaire
Projet5 leçons1- 01Configuration du projetDéfi
- 02Ajout et mise à jour d'articlesProjet
- 03Vérification du stockProjet
- 04Suppression de stockProjet
- 05Impression du rapport d'inventaireProjet
Ensembles (Éléments uniques)
6 leçons538- 01Introduction à std::setQuiz
- 02Créer un Set et ajouter des élémentsDéfiQuiz
- 03Vérifier la présence d'élémentsDéfiQuiz
- 04Supprimer des élémentsDéfiQuiz
- 05Parcourir un SetDéfiQuiz
- 06Récapitulatif - Nombres uniquesDéfi
Fonctions avancées
7 leçons653- 01Passage par référenceDéfiQuiz
- 02Introduction aux expressions LambdaDéfiQuiz
- 03Lambdas avec paramètresDéfiQuiz
- 04Lambdas avec valeurs de retourDéfiQuiz
- 05Introduction à la récursivitéQuiz
- 06Factorielle récursiveDéfiQuiz
- 07Tri par LambdaDéfiQuiz
Gestion de base des erreurs
6 leçons540- 01Introduction aux exceptionsQuiz
- 02Les blocs 'try' et 'catch'DéfiQuiz
- 03Le mot-clé 'throw'DéfiQuiz
- 04Les différents types d'exceptionsDéfiQuiz
- 05Le gestionnaire d'exceptions génériqueDéfiQuiz
- 06Récapitulatif - Division sécuriséeDéfi
Défis finaux
3 leçons3- 01Filtrage de données de vecteurDéfi
- 02Recherche de valeur dans une MapDéfi
- 03Pointeur et tableau dynamiqueDéfi
Section 3
Programmation Orientée Objet
Commencer la sectionDémarrerDévelopperRéduireDécouvrez comment organiser le code avec des classes, des objets et des structures réutilisablesFondamentaux de la POO
11 leçons1187- 01Fichiers externesDéfiQuiz
- 02Build et Compilation C++DéfiQuiz
- 03Fichiers d'en-tête et Fichiers sourceDéfiQuiz
- 04Espaces de noms et PortéeDéfiQuiz
- 05Introduction à la POO en C++DéfiQuiz
- 06Classes vs ObjetsDéfiQuiz
- 07Le pointeur 'this'DéfiQuiz
- 08Méthodes (Fonctions membres)DéfiQuiz
- 09Attributs (Membres de données)DéfiQuiz
- 10Bases des Ctors et DtorsDéfiQuiz
- 11Récapitulatif - Calculatrice simpleDéfi
Gestion de la mémoire
6 leçons644- 01Mémoire Pile vs TasDéfiQuiz
- 02Pointeurs et RéférencesDéfiQuiz
- 03Mémoire dynamique (new/delete)DéfiQuiz
- 04Smart Pointers en C++DéfiQuiz
- 05RAII en C++DéfiQuiz
- 06Récapitulatif - Gestionnaire de tableaux dynamiquesDéfi
Constructeurs et Destructeurs
9 leçons972- 01Constructeur par défautDéfiQuiz
- 02Constructeur paramétréDéfiQuiz
- 03Constructeur de copieDéfiQuiz
- 04Constructeur de déplacementDéfiQuiz
- 05Listes d'initialisation du constructeurDéfiQuiz
- 06Constructeurs déléguésDéfiQuiz
- 07Analyse approfondie du destructeurDéfiQuiz
- 08Règle de trois / cinq / zéroDéfiQuiz
- 09Récapitulatif - Classe StringDéfi
Propriétés de classe
7 leçons753- 01Membres d'instance vs membres statiquesDéfiQuiz
- 02Getters et SettersDéfiQuiz
- 03Fonctions membres constDéfiQuiz
- 04Mot-clé mutableDéfiQuiz
- 05Méthodes et variables statiquesDéfiQuiz
- 06Fonctions et classes amiesDéfiQuiz
- 07Récapitulatif - Gestionnaire de compte bancaireDéfi
Encapsulation
6 leçons651- 01Spécificateurs d'accès en C++DéfiQuiz
- 02Spécificateurs d'accès en profondeurDéfiQuiz
- 03Masquage d'informationDéfiQuiz
- 04Struct vs ClassDéfiQuiz
- 05Classes imbriquées et internesDéfiQuiz
- 06Récapitulatif - Système de gestion d'étudiantsDéfiQuiz
Surcharge d'opérateurs
8 leçons863- 01Introduction à la surcharge d'opérateursDéfiQuiz
- 02Surcharge des opérateurs arithmétiquesDéfiQuiz
- 03Surcharge des opérateurs de comparaisonDéfiQuiz
- 04Opérateurs de fluxDéfiQuiz
- 05Surcharge de l'opérateur d'affectationDéfiQuiz
- 06Surcharge des opérateurs [] et ()DéfiQuiz
- 07Opérateurs de conversion de typeDéfiQuiz
- 08Récapitulatif - Classe MatrixDéfi
Héritage
8 leçons862- 01Héritage de baseDéfiQuiz
- 02Niveaux d'accès à l'héritageDéfiQuiz
- 03Ordre d'appel des Ctor et DtorDéfiQuiz
- 04Redéfinition de méthodesDéfiQuiz
- 05Fonctions virtuelles et VTableDéfiQuiz
- 06Héritage multipleDéfiQuiz
- 07Héritage virtuelDéfiQuiz
- 08Récapitulatif - Hiérarchie des employésDéfi
Polymorphisme
8 leçons860- 01Polymorphisme : Compilation vs ExécutionDéfiQuiz
- 02Surcharge de fonctionsDéfiQuiz
- 03Retour sur les fonctions virtuellesDéfiQuiz
- 04Fonctions virtuelles puresDéfiQuiz
- 05Classes abstraitesDéfiQuiz
- 06Conception d'interfaces en C++DéfiQuiz
- 07Dynamic Casting & RTTIDéfiQuiz
- 08Récapitulatif - Calculateur de formesDéfi
Templates
6 leçons546- 01Templates de fonctionsDéfiQuiz
- 02Templates de classesDéfiQuiz
- 03Spécialisation de templatesDéfiQuiz
- 04Templates variadiquesDéfiQuiz
- 05Bases de SFINAE & Type TraitsQuiz
- 06Récapitulatif - Conteneur génériqueDéfi
Présentation de la STL
6 leçons646- 01Présentation et philosophie de la STLDéfiQuiz
- 02Conteneurs de la STLDéfiQuiz
- 03ItérateursDéfiQuiz
- 04Algorithmes de la STLDéfiQuiz
- 05Foncteurs et expressions lambdaDéfiQuiz
- 06Récapitulatif - Fréquence des motsDéfi
Concepts avancés de la POO
7 leçons763- 01Composition vs HéritageDéfiQuiz
- 02Mixins via CRTPDéfiQuiz
- 03Idiome PimplDéfiQuiz
- 04Effacement de typeDéfiQuiz
- 05Enum Classes & Typage fortDéfiQuiz
- 06Gestion des exceptions en POODéfiQuiz
- 07Hiérarchies d'exceptions personnaliséesDéfiQuiz
Fonctionnalités du C++ moderne
7 leçons764- 01Sémantique de mouvement et RvaluesDéfiQuiz
- 02Transfert parfaitDéfiQuiz
- 03Expressions Lambda en profondeurDéfiQuiz
- 04std::function et std::bindDéfiQuiz
- 05constexpr et constevalDéfiQuiz
- 06Liaisons structuréesDéfiQuiz
- 07optional, variant, anyDéfiQuiz
Patrons de conception, Partie 1
6 leçons655- 01Introduction aux patrons de conceptionDéfiQuiz
- 02Patron SingletonDéfiQuiz
- 03Fabrique & Fabrique abstraiteDéfiQuiz
- 04Patron MonteurDéfiQuiz
- 05Patron ObservateurDéfiQuiz
- 06Patron StratégieDéfiQuiz
Patrons de conception, Partie 2
7 leçons764- 01Patron CommandeDéfiQuiz
- 02Patron AdaptateurDéfiQuiz
- 03Patron DécorateurDéfiQuiz
- 04Patron Template MethodDéfiQuiz
- 05Patron ÉtatDéfiQuiz
- 06Patron CompositeDéfiQuiz
- 07RAII en tant que patronDéfiQuiz
Défis finaux
2 leçons2- 01Plateforme d'E-LearningDéfi
- 02Système bancaireDéfi
Pourquoi apprendre C++ avec Coddy
- Écris et exécute du vrai code C++ dans ton navigateur. Pas de compilateur à installer, pas de toolchain à configurer. Chaque leçon compile ton C++ côté serveur et t'affiche le résultat instantanément.
- C++ moderne : classes et objets, héritage, fonctions virtuelles, références et pointeurs, templates, la STL. Les patterns C++ que tu utiliserais vraiment aujourd'hui.
- Les indices IA t'aident à lire et corriger les erreurs du compilateur C++ — particulièrement les plus cryptiques — pour que le langage devienne abordable au lieu d'être punitif.
- Certificat C++ gratuit à la fin du cours. Utile pour les postes en systèmes, game-dev et embarqué, où la maîtrise du C++ est attendue par défaut.
Questions fréquentes sur l’apprentissage de C++
C++ est-il facile à apprendre ?
C++ traîne la réputation d'être un des langages les plus durs à apprendre — pointeurs, gestion manuelle de la mémoire et tout un arsenal de fonctionnalités, ça finit par peser. La bonne nouvelle, c'est que tu n'as pas besoin de tout maîtriser dès le premier jour. Le cours commence par le noyau pratique (variables, contrôle de flux, fonctions, classes) et n'introduit les pointeurs et les templates qu'une fois les bases bien posées.
Apprendre le C ou le C++ en premier ?
Les deux t'apprennent à penser bas niveau, mais ils mènent à des endroits différents. C est plus petit et te confronte tout de suite à la mémoire et aux pointeurs. C++ est plus vaste mais permet une montée en charge plus progressive, via les classes et la STL, avant de devoir gérer la mémoire à la main. Pour du développement d'applications ou de jeux, commence par C++ ; pour de l'embarqué ou du système d'exploitation, C est plus proche de la machine.
Combien de temps faut-il pour apprendre le C++ ?
Les bases du C++ — syntaxe, contrôle de flux, fonctions, classes simples — te prendront trois à six semaines en pratiquant tous les jours. Manier les pointers, les templates et la STL avec aisance demande en général trois à six mois. La maîtrise (idiomes du C++ moderne, optimisation, bases de code complexes) s'étale sur plusieurs années.
Est-ce que je peux apprendre le C++ en ligne gratuitement ?
Oui. Le cours interactif de C++ est gratuit — leçons, exercices de code, quiz et certificat. L'éditeur tourne dans ton navigateur, donc pas besoin d'installer GCC, Clang ou Visual Studio en local pour commencer à écrire du C++.
Faut-il installer un compilateur pour suivre ce cours de C++ ?
Non. Chaque exercice C++ se compile côté serveur dans un environnement sandboxé et affiche la sortie à côté de ton code. Pas de toolchain, pas de makefile, pas d'IDE.
Est-ce que je reçois un certificat C++ à la fin du cours ?
Oui. En terminant le cours C++, tu obtiens un certificat de fin de parcours gratuit. Une preuve vérifiable à ajouter à ton CV ou à ton LinkedIn, en complément de ton code de portfolio.