Aller au contenu
Module 2

C++ orienté objet

Classes, objets, héritage, polymorphisme et les piliers de la POO en C++.

Classes et objets

  1. Classes, structs et encapsulation

    Comprenez la différence entre struct et class, les spécificateurs d'accès, l'encapsulation, les fonctions membres const, les membres statiques et l'initialisation d'agrégat moderne.

  2. Constructeurs, destructeurs et règle de 0/3/5

    Maîtrisez le cycle de vie complet des objets C++ — de la construction à la destruction — et apprenez quand écrire (ou ne pas écrire) les fonctions membres spéciales.

  3. Sémantique de copie : profonde vs superficielle

    Apprenez la différence entre les copies superficielles et profondes, comment implémenter des opérations de copie correctes pour les classes possédant des ressources, et l'idiome copy-and-swap.

Héritage et polymorphisme

  1. Héritage et relations est-un

    Apprenez l'héritage public, le chaînage de constructeurs, le problème du découpage, l'héritage multiple et le problème du diamant — et quand l'héritage est approprié.

  2. Fonctions virtuelles, vtables et polymorphisme

    Plongez dans le polymorphisme d'exécution : comment le dispatch virtuel fonctionne en coulisses, quand utiliser override et final, les classes abstraites et le RTTI.

  3. Surcharge d'opérateurs

    Apprenez à surcharger correctement les opérateurs — membre vs non-membre, formes canoniques, opérateurs de flux, l'opérateur spaceship C++20 et les pièges courants.

Conception POO

  1. Membres statiques, singletons et PIMPL

    Explorez les membres statiques, le patron Singleton de Meyers, le patron Factory et l'idiome PIMPL pour la stabilité ABI et l'isolation de compilation.

  2. Composition, interfaces et conception

    Maîtrisez la composition plutôt que l'héritage, les interfaces abstraites pures, les principes de conception (ISP, DIP), std::variant comme alternative à l'héritage, et l'effacement de type.