Menu

Formation C++

Apprenez C++, un langage de programmation puissant et polyvalent

Faire un don

Créez un compte gratuitement

Suivez votre progression, sauvegardez vos avancées et obtenez des certificats de complétion. Rejoignez des milliers d'apprenants qui développent leurs compétences avec nous !

Suivi de progression détaillé
Certificats téléchargeables
Badges et accomplissements

Introduction à C++

C++ est un langage de programmation compilé, multi-paradigme, créé par Bjarne Stroustrup en 1983. C++ étend le langage C avec des fonctionnalités orientées objet, des templates, et de nombreuses améliorations modernes.

⚙️ Qu'est-ce que C++ ?

C++ est un langage de programmation compilé, multi-paradigme (procédural, orienté objet, générique). C++ est un langage de niveau moyen qui combine la puissance et le contrôle de C avec des fonctionnalités de haut niveau.

💡 Pourquoi C++ est si important ?

  1. Performance maximale - Utilisé pour les applications nécessitant des performances optimales (jeux vidéo, systèmes temps réel)
  2. Polyvalence - Supporte plusieurs paradigmes de programmation (procédural, OOP, générique)
  3. Standard Template Library (STL) - Bibliothèque riche de conteneurs et algorithmes
  4. Industrie - Très utilisé dans le développement de jeux, systèmes embarqués, finance haute fréquence
  5. Contrôle mémoire - Gestion manuelle ou automatique selon les besoins
  6. Standard moderne - C++11/14/17/20 apportent des fonctionnalités modernes

🚀 Pourquoi apprendre C++ ?

C++ est un langage puissant qui ouvre de nombreuses opportunités dans le développement logiciel. Voici les principales raisons d'apprendre C++ :

  • Performance - Applications nécessitant des performances maximales
  • Jeux vidéo - Standard de l'industrie pour les moteurs de jeux (Unreal, Unity)
  • Systèmes embarqués - Programmation de systèmes critiques
  • Finance - Trading haute fréquence, systèmes financiers
  • Base solide - Comprendre C++ facilite l'apprentissage d'autres langages
  • Carrière - Très demandé dans l'industrie du jeu et des systèmes

📋 Prérequis pour apprendre C++

Pour apprendre C++ efficacement, il est recommandé d'avoir une base en programmation (variables, conditions, boucles).

  • Base en programmation - Comprendre les concepts de base (variables, conditions, boucles)
  • Langage C (optionnel) - Avoir des bases en C facilite l'apprentissage de C++
  • Patience - C++ nécessite de l'attention aux détails

💡 Note importante : Pour compiler du code C++, vous avez besoin d'un compilateur comme GCC (GNU Compiler Collection) ou Clang. Sur Linux, GCC est souvent préinstallé. Sur Windows, vous pouvez installer MinGW ou utiliser Visual Studio. Sur macOS, installez Xcode Command Line Tools.

🎯 Cas d'utilisation de C++

C++ est utilisé dans de nombreux domaines critiques :

  • 🎮 Jeux vidéo - Moteurs de jeux (Unreal Engine, Unity)
  • 🖥️ Systèmes embarqués - Microcontrôleurs, IoT, systèmes temps réel
  • 💼 Finance - Trading haute fréquence, systèmes financiers
  • 🔧 Programmation système - Drivers, compilateurs, outils système
  • 📡 Réseaux - Protocoles réseau, serveurs haute performance
  • 🔬 Calcul scientifique - Applications nécessitant des calculs intensifs
  • 💾 Bases de données - Moteurs de bases de données
  • 🌐 Serveurs web - Serveurs web haute performance

📝 Syntaxe de base

C++ est un langage de programmation compilé. C++ utilise des accolades {} pour définir les blocs de code et nécessite un point-virgule ; à la fin de chaque instruction.

// Premier programme C++
#include 
using namespace std;

int main() {
    cout << "Bonjour, monde !" << endl;
    return 0;
}

// Variables
int age = 25;
string nom = "NiangProgrammeur";

// Affichage formaté
cout << "Je m'appelle " << nom << " et j'ai " << age << " ans" << endl;

// Opérations simples
int resultat = 10 + 5;
cout << "10 + 5 = " << resultat << endl;
}

💡 Points importants sur la syntaxe C++ :

  • C++ utilise des accolades {} pour définir les blocs de code
  • Les commentaires utilisent // pour une ligne ou /* */ pour plusieurs lignes
  • Point-virgule requis ; à la fin de chaque instruction
  • Les chaînes utilisent des guillemets doubles "
  • Les fonctions doivent être déclarées avant utilisation (ou via headers)
  • Le point d'entrée est la fonction main() qui retourne un int

🔍 Exemple de syntaxe détaillée

Voici un exemple complet montrant plusieurs aspects de la syntaxe C++ :

#include 
#include 
using namespace std;

// Définition d'une fonction
int calculer_moyenne(int nombres[], int taille) {
    if (taille == 0) {
        return 0;
    }
    int somme = 0;
    for (int i = 0; i < taille; i++) {
        somme += nombres[i];
    }
    return somme / taille;
}

// Classe simple
class Personne {
public:
    string nom;
    int age;
    
    void afficher() {
        cout << "Nom: " << nom << ", Age: " << age << endl;
    }
};

// Fonction principale
int main() {
    int notes[] = {15, 18, 12, 20, 16};
    int moyenne = calculer_moyenne(notes, 5);
    cout << "La moyenne est : " << moyenne << endl;
    
    // Utilisation d'une classe
    Personne p;
    p.nom = "Bassirou";
    p.age = 25;
    p.afficher();
    
    return 0;
}

🔤 Variables

En C++, les variables doivent être déclarées avec un type avant utilisation. C++ est un langage à typage statique.

#include 
#include 
using namespace std;

int main() {
    // Déclaration de variables
    int age = 30;                    // Entier
    float prix = 19.99f;             // Nombre décimal (simple précision)
    double decimal = 3.14159;         // Nombre décimal (double précision)
    char lettre = 'A';               // Caractère unique
    string nom = "C++";              // Chaîne de caractères (C++)
    bool est_vrai = true;            // Booléen
    
    // Affichage avec cout
    cout << "Age: " << age << endl;
    cout << "Prix: " << prix << endl;
    cout << "Decimal: " << decimal << endl;
    cout << "Lettre: " << lettre << endl;
    cout << "Nom: " << nom << endl;
    cout << "Est vrai: " << est_vrai << endl;
    
    // Déclaration puis assignation
    int nombre;
    nombre = 10;
    cout << "Nombre: " << nombre << endl;
    
    // Constantes avec const
    const int TAILLE = 50;
    const string MESSAGE = "Bonjour";
    
    // Constantes avec constexpr (C++11)
    constexpr double PI = 3.14159;
    constexpr int MAX_SIZE = 100;
    
    // Noms de variables valides
    int age_utilisateur = 25;
    string nom_utilisateur = "Bassirou";
    float _prive = 3.14;  // Possible mais non recommandé
    
    return 0;
}

📌 Règles pour les noms de variables :

  • Doivent commencer par une lettre ou un underscore _
  • Peuvent contenir des lettres, chiffres et underscores
  • Ne peuvent pas contenir d'espaces ou de caractères spéciaux
  • Sont sensibles à la casse (ageAge)
  • Ne peuvent pas être des mots-clés C++ (if, for, int, class, etc.)
  • Convention : utilisez camelCase ou snake_case pour les variables

📊 Types de données

C++ a plusieurs types de données de base (primitifs). Voici les principaux types disponibles en C++ :

#include 
#include 
using namespace std;

int main() {
    // Types entiers
    char c = 'A';              // 1 octet (-128 à 127 ou 0 à 255)
    short s = 100;             // 2 octets (-32768 à 32767)
    int i = 1000;              // 4 octets (généralement)
    long l = 100000L;          // 4 ou 8 octets
    long long ll = 1000000LL;  // 8 octets
    
    // Types entiers non signés
    unsigned char uc = 200;
    unsigned int ui = 5000;
    unsigned long ul = 100000UL;
    
    // Types décimaux
    float f = 3.14f;           // 4 octets (simple précision)
    double d = 3.14159;        // 8 octets (double précision)
    long double ld = 3.141592653589793L;  // 10 ou 16 octets
    
    // Type booléen
    bool est_vrai = true;
    bool est_faux = false;
    
    // Chaînes de caractères (C++)
    string chaine = "Hello";   // Classe string (C++)
    char tableau[] = "World";  // Tableau de caractères (style C)
    
    // Affichage avec cout
    cout << "char: " << c << endl;
    cout << "int: " << i << endl;
    cout << "float: " << f << endl;
    cout << "double: " << d << endl;
    cout << "bool: " << est_vrai << endl;
    cout << "string: " << chaine << endl;
    
    // Taille des types (en octets)
    cout << "Taille de int: " << sizeof(int) << " octets" << endl;
    cout << "Taille de float: " << sizeof(float) << " octets" << endl;
    cout << "Taille de double: " << sizeof(double) << " octets" << endl;
    
    return 0;
}

📚 Types de données C++ :

  • char - Caractère (1 octet)
  • int - Entier (généralement 4 octets)
  • float - Nombre décimal simple précision (4 octets)
  • double - Nombre décimal double précision (8 octets)
  • void - Type vide (pour fonctions sans retour)
  • bool - Booléen (true/false)
  • string - Chaîne de caractères (C++)
  • short, long, long long - Variantes d'entiers
  • unsigned - Modificateur pour entiers non signés

🔢 Opérateurs

C++ supporte les opérateurs arithmétiques, de comparaison, logiques, d'assignation et de pointeurs :

#include 
#include   // Pour pow()
using namespace std;

int main() {
    int a = 10, b = 3;
    
    // Opérateurs arithmétiques
    cout << a << " + " << b << " = " << (a + b) << endl;      // Addition: 13
    cout << a << " - " << b << " = " << (a - b) << endl;      // Soustraction: 7
    cout << a << " * " << b << " = " << (a * b) << endl;      // Multiplication: 30
    cout << a << " / " << b << " = " << (a / b) << endl;      // Division entière: 3
    cout << a << " % " << b << " = " << (a % b) << endl;      // Modulo (reste): 1
    
    // Division avec float
    float resultat = (float)a / b;
    cout << a << " / " << b << " = " << resultat << endl;     // Division: 3.33
    
    // Puissance (nécessite cmath)
    double puissance = pow(a, b);
    cout << a << "^" << b << " = " << puissance << endl;      // Puissance: 1000
    
    // Opérateurs de comparaison
    cout << (a > b) << endl;   // true (1)
    cout << (a < b) << endl;   // false (0)
    cout << (a >= b) << endl;  // true (1)
    cout << (a <= b) << endl;  // false (0)
    cout << (a == b) << endl;  // false (0)
    cout << (a != b) << endl;  // true (1)
    
    // Opérateurs logiques
    bool x = true, y = false;
    cout << (x && y) << endl;  // ET logique: false (0)
    cout << (x || y) << endl;  // OU logique: true (1)
    cout << !x << endl;       // NON logique: false (0)
    
    // Opérateurs d'assignation
    int c = 5;
    c += 3;  // Équivalent à c = c + 3 (c devient 8)
    c -= 2;  // Équivalent à c = c - 2 (c devient 6)
    c *= 2;  // Équivalent à c = c * 2 (c devient 12)
    c /= 3;  // Équivalent à c = c / 3 (c devient 4)
    c %= 3;  // Équivalent à c = c % 3 (c devient 1)
    
    // Opérateurs d'incrémentation/décrémentation
    int i = 5;
    cout << "i = " << i++ << endl;  // Post-incrémentation: affiche 5, puis i = 6
    cout << "i = " << ++i << endl;  // Pré-incrémentation: i = 7, puis affiche 7
    
    return 0;
}

🔀 Structures conditionnelles

Le langage C++ utilise if, else if et else pour les conditions. Les blocs de code sont délimités par des accolades {}.

#include 
using namespace std;

int main() {
    // Structure if simple
    int age = 20;
    
    if (age >= 18) {
        cout << "Vous êtes majeur" << endl;
    } else {
        cout << "Vous êtes mineur" << endl;
    }
    
    // Structure if/else if/else
    age = 15;
    
    if (age >= 18) {
        cout << "Vous êtes majeur" << endl;
        cout << "Vous pouvez voter" << endl;
    } else if (age >= 13) {
        cout << "Vous êtes adolescent" << endl;
    } else if (age >= 6) {
        cout << "Vous êtes enfant" << endl;
    } else {
        cout << "Vous êtes un bébé" << endl;
    }
    
    // Conditions multiples
    int note = 85;
    string mention;
    
    if (note >= 90) {
        mention = "Excellent";
    } else if (note >= 80) {
        mention = "Très bien";
    } else if (note >= 70) {
        mention = "Bien";
    } else if (note >= 60) {
        mention = "Assez bien";
    } else {
        mention = "Insuffisant";
    }
    
    cout << "Votre mention : " << mention << endl;
    
    // Opérateur ternaire (expression conditionnelle)
    age = 20;
    string statut = (age >= 18) ? "Majeur" : "Mineur";
    cout << statut << endl;
    
    // Conditions avec &&/||
    age = 25;
    bool permis = true;
    
    if (age >= 18 && permis) {
        cout << "Vous pouvez conduire" << endl;
    } else {
        cout << "Vous ne pouvez pas conduire" << endl;
    }
    
    return 0;
}

🔄 Boucles

Le langage C++ propose plusieurs types de boucles : for (pour itérer un nombre défini de fois), while (pour répéter tant qu'une condition est vraie) et do-while (exécute au moins une fois) :

#include 
#include 
using namespace std;

int main() {
    // Boucle for classique
    for (int i = 0; i < 5; i++) {
        cout << i << " ";  // Affiche 0, 1, 2, 3, 4
    }
    cout << endl;
    
    // Boucle for avec range (C++11)
    vector nombres = {1, 2, 3, 4, 5};
    for (int n : nombres) {
        cout << n << " ";  // Affiche 1, 2, 3, 4, 5
    }
    cout << endl;
    
    // Boucle for avec pas
    for (int i = 0; i < 10; i += 2) {
        cout << i << " ";  // Affiche 0, 2, 4, 6, 8
    }
    cout << endl;
    
    // Boucle for avec vector
    vector fruits = {"pomme", "banane", "orange"};
    for (const string& fruit : fruits) {
        cout << "J'aime les " << fruit << endl;
    }
    
    // Boucle while
    int compteur = 0;
    while (compteur < 5) {
        cout << compteur << " ";
        compteur++;
    }
    cout << endl;
    
    // Boucle do-while (exécute au moins une fois)
    int i = 0;
    do {
        cout << i << " ";
        i++;
    } while (i < 5);
    cout << endl;
    
    // Boucle while avec break
    compteur = 0;
    while (true) {
        cout << compteur << " ";
        compteur++;
        if (compteur >= 5) {
            break;  // Sortir de la boucle
        }
    }
    cout << endl;
    
    // continue (passer à l'itération suivante)
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {  // Si i est pair
            continue;       // Passer au suivant
        }
        cout << i << " ";  // Affiche seulement les impairs: 1, 3, 5, 7, 9
    }
    cout << endl;
    
    return 0;
}

⚙️ Fonctions

Les fonctions permettent de réutiliser du code. En C++, on définit une fonction avec son type de retour, son nom et ses paramètres. Les fonctions peuvent prendre des paramètres et retourner des valeurs avec return.

#include 
#include 
using namespace std;

// Fonction simple (sans paramètres)
void dire_bonjour() {
    cout << "Bonjour !" << endl;
}

// Fonction avec paramètres
string saluer(string nom) {
    return "Bonjour, " + nom + " !";
}

// Fonction avec plusieurs paramètres
int additionner(int a, int b) {
    return a + b;
}

// Fonction avec paramètres par défaut
string saluer_personne(string nom, string message = "Bonjour") {
    return message + ", " + nom + " !";
}

// Fonction avec surcharge (même nom, paramètres différents)
int multiplier(int a, int b) {
    return a * b;
}

double multiplier(double a, double b) {
    return a * b;
}

// Fonction inline (pour petites fonctions)
inline int carre(int x) {
    return x * x;
}

int main() {
    // Appel de fonctions
    dire_bonjour();
    
    string message = saluer("C++");
    cout << message << endl;  // "Bonjour, C++ !"
    
    int resultat = additionner(5, 3);
    cout << resultat << endl;  // 8
    
    cout << saluer_personne("Bassirou") << endl;              // "Bonjour, Bassirou !"
    cout << saluer_personne("Bassirou", "Salut") << endl;     // "Salut, Bassirou !"
    
    // Surcharge de fonctions
    cout << multiplier(5, 3) << endl;        // 15 (int)
    cout << multiplier(5.5, 3.2) << endl;    // 17.6 (double)
    
    // Fonction inline
    cout << carre(5) << endl;  // 25
    
    return 0;
}

🏛️ Classes et objets

En C++, les classes permettent de créer des types personnalisés avec des propriétés (membres) et des méthodes (fonctions membres).

#include 
#include 
using namespace std;

// Définition d'une classe
class Personne {
private:
    string nom;
    int age;
    
public:
    // Constructeur
    Personne(string n, int a) {
        nom = n;
        age = a;
    }
    
    // Méthodes (getters)
    string getNom() {
        return nom;
    }
    
    int getAge() {
        return age;
    }
    
    // Méthodes (setters)
    void setNom(string n) {
        nom = n;
    }
    
    void setAge(int a) {
        age = a;
    }
    
    // Méthode pour afficher
    void afficher() {
        cout << "Nom: " << nom << ", Age: " << age << endl;
    }
};

int main() {
    // Création d'objets
    Personne p1("Bassirou", 25);
    Personne p2("Aminata", 30);
    
    // Utilisation des méthodes
    p1.afficher();
    p2.afficher();
    
    // Modification via setters
    p1.setAge(26);
    p1.afficher();
    
    // Accès via getters
    cout << "Nom de p1: " << p1.getNom() << endl;
    cout << "Age de p1: " << p1.getAge() << endl;
    
    return 0;
}

🔗 Héritage

L'héritage permet à une classe de dériver d'une autre classe et d'hériter de ses membres.

#include 
#include 
using namespace std;

// Classe de base
class Animal {
protected:
    string nom;
    
public:
    Animal(string n) : nom(n) {}
    
    void manger() {
        cout << nom << " mange" << endl;
    }
    
    virtual void faireBruit() {
        cout << nom << " fait un bruit" << endl;
    }
};

// Classe dérivée
class Chien : public Animal {
public:
    Chien(string n) : Animal(n) {}
    
    void faireBruit() override {
        cout << nom << " aboie" << endl;
    }
    
    void aboyer() {
        cout << nom << " aboie fort !" << endl;
    }
};

// Classe dérivée
class Chat : public Animal {
public:
    Chat(string n) : Animal(n) {}
    
    void faireBruit() override {
        cout << nom << " miaule" << endl;
    }
};

int main() {
    Chien chien("Rex");
    Chat chat("Mimi");
    
    chien.manger();      // Hérité de Animal
    chien.faireBruit();  // Surchargé dans Chien
    chien.aboyer();      // Spécifique à Chien
    
    chat.manger();       // Hérité de Animal
    chat.faireBruit();   // Surchargé dans Chat
    
    return 0;
}

🔄 Polymorphisme

Le polymorphisme permet à des objets de classes différentes d'être traités de manière uniforme via une interface commune. En C++, cela se fait avec des fonctions virtuelles.

#include 
#include 
using namespace std;

// Classe de base avec fonction virtuelle
class Forme {
public:
    virtual double calculerAire() = 0;  // Fonction virtuelle pure
    virtual void afficher() {
        cout << "Forme" << endl;
    }
};

// Classe dérivée
class Cercle : public Forme {
private:
    double rayon;
    
public:
    Cercle(double r) : rayon(r) {}
    
    double calculerAire() override {
        return 3.14159 * rayon * rayon;
    }
    
    void afficher() override {
        cout << "Cercle de rayon " << rayon << endl;
    }
};

// Classe dérivée
class Rectangle : public Forme {
private:
    double largeur, hauteur;
    
public:
    Rectangle(double l, double h) : largeur(l), hauteur(h) {}
    
    double calculerAire() override {
        return largeur * hauteur;
    }
    
    void afficher() override {
        cout << "Rectangle " << largeur << "x" << hauteur << endl;
    }
};

int main() {
    // Polymorphisme avec pointeurs
    Forme* forme1 = new Cercle(5.0);
    Forme* forme2 = new Rectangle(4.0, 6.0);
    
    forme1->afficher();
    cout << "Aire: " << forme1->calculerAire() << endl;
    
    forme2->afficher();
    cout << "Aire: " << forme2->calculerAire() << endl;
    
    // Polymorphisme avec vector
    vector formes;
    formes.push_back(new Cercle(3.0));
    formes.push_back(new Rectangle(2.0, 4.0));
    
    for (Forme* f : formes) {
        f->afficher();
        cout << "Aire: " << f->calculerAire() << endl;
    }
    
    // Libération mémoire
    delete forme1;
    delete forme2;
    for (Forme* f : formes) {
        delete f;
    }
    
    return 0;
}

📦 Templates

Les templates permettent de créer des fonctions et classes génériques qui fonctionnent avec différents types de données. C'est une fonctionnalité puissante de C++.

#include 
#include 
using namespace std;

// Template de fonction
template
T maximum(T a, T b) {
    return (a > b) ? a : b;
}

// Template de classe
template
class Pile {
private:
    T* elements;
    int taille;
    int sommet;
    
public:
    Pile(int t) : taille(t), sommet(-1) {
        elements = new T[taille];
    }
    
    ~Pile() {
        delete[] elements;
    }
    
    void empiler(T element) {
        if (sommet < taille - 1) {
            elements[++sommet] = element;
        }
    }
    
    T depiler() {
        if (sommet >= 0) {
            return elements[sommet--];
        }
        return T();
    }
    
    bool estVide() {
        return sommet == -1;
    }
};

int main() {
    // Utilisation du template de fonction
    cout << maximum(10, 20) << endl;           // 20 (int)
    cout << maximum(3.5, 2.8) << endl;         // 3.5 (double)
    cout << maximum('a', 'z') << endl;         // 'z' (char)
    cout << maximum(string("abc"), string("xyz")) << endl;  // "xyz" (string)
    
    // Utilisation du template de classe
    Pile pileInt(10);
    pileInt.empiler(10);
    pileInt.empiler(20);
    pileInt.empiler(30);
    
    while (!pileInt.estVide()) {
        cout << pileInt.depiler() << " ";
    }
    cout << endl;
    
    Pile pileString(10);
    pileString.empiler("Premier");
    pileString.empiler("Deuxième");
    pileString.empiler("Troisième");
    
    while (!pileString.estVide()) {
        cout << pileString.depiler() << " ";
    }
    cout << endl;
    
    return 0;
}

📚 Standard Template Library (STL)

La STL est une bibliothèque puissante de C++ qui fournit des conteneurs, itérateurs et algorithmes prêts à l'emploi.

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

int main() {
    // Vector (tableau dynamique)
    vector nombres = {3, 1, 4, 1, 5, 9, 2, 6};
    
    nombres.push_back(8);  // Ajouter un élément
    nombres.pop_back();    // Retirer le dernier élément
    
    cout << "Taille: " << nombres.size() << endl;
    
    // Parcourir avec range-based for (C++11)
    for (int n : nombres) {
        cout << n << " ";
    }
    cout << endl;
    
    // Trier avec algorithm
    sort(nombres.begin(), nombres.end());
    cout << "Trié: ";
    for (int n : nombres) {
        cout << n << " ";
    }
    cout << endl;
    
    // List (liste doublement chaînée)
    list mots = {"C++", "est", "puissant"};
    mots.push_back("!");
    mots.push_front("Le");
    
    for (const string& mot : mots) {
        cout << mot << " ";
    }
    cout << endl;
    
    // Map (dictionnaire)
    map ages;
    ages["Bassirou"] = 25;
    ages["Aminata"] = 30;
    ages["Ibrahima"] = 28;
    
    for (const auto& paire : ages) {
        cout << paire.first << " a " << paire.second << " ans" << endl;
    }
    
    // Algorithmes STL
    vector vec = {1, 2, 3, 4, 5};
    
    // Trouver un élément
    auto it = find(vec.begin(), vec.end(), 3);
    if (it != vec.end()) {
        cout << "Trouvé: " << *it << endl;
    }
    
    // Compter
    int count = count_if(vec.begin(), vec.end(), [](int x) { return x > 2; });
    cout << "Éléments > 2: " << count << endl;
    
    // Transformer
    transform(vec.begin(), vec.end(), vec.begin(), [](int x) { return x * 2; });
    cout << "Doublé: ";
    for (int n : vec) {
        cout << n << " ";
    }
    cout << endl;
    
    return 0;
}

💡 Note importante : C++ offre un contrôle précis sur la mémoire avec new et delete (ou malloc/free style C). En C++ moderne, préférez les conteneurs STL (vector, string) qui gèrent automatiquement la mémoire !

🎓 Prochaines étapes

Félicitations ! Vous avez maintenant une solide base en C++.

✅ Ce que vous avez appris :

  • Syntaxe C++ et variables
  • Types de données (int, float, double, char, bool, string)
  • Opérateurs (arithmétiques, comparaison, logiques)
  • Structures conditionnelles (if, else if, else, switch)
  • Boucles (for, while, do-while)
  • Fonctions (définition, paramètres, return, surcharge)
  • Classes et objets (encapsulation, constructeurs)
  • Héritage et polymorphisme

🚀 Pour aller plus loin :

  • 📚 Templates - Programmation générique avancée
  • 🔧 STL - Standard Template Library (containers, algorithms)
  • 💾 Gestion mémoire - Smart pointers, RAII
  • 🌐 Multithreading - Programmation concurrente
  • 📊 Design patterns - Patterns de conception en C++
  • 🎮 Game development - Développement de jeux avec C++
Cliquer pour discuter avec NiangProgrammeur
NiangProgrammeur
En ligne

Bonjour ! 👋

Comment puis-je vous aider aujourd'hui ?