Aller au contenu

Glossaire

Une référence complète des termes C++ utilisés tout au long de ce guide.


Une classe qui ne peut pas être instanciée directement car elle contient au moins une fonction virtuelle pure. Sert de classe de base définissant une interface que les classes dérivées doivent implémenter. Apparaît pour la première fois dans le Module 04

Mots-clés (public, private, protected) qui contrôlent la visibilité des membres d’une classe. Les membres publics sont accessibles partout, les privés uniquement dans la classe, les protégés dans la classe et les classes dérivées. Apparaît pour la première fois dans le Module 00

Un identifiant unique pour un emplacement en mémoire, généralement représenté comme un nombre hexadécimal. Les pointeurs stockent des adresses. Apparaît pour la première fois dans le Module 01

Une classe dont d’autres classes héritent. Aussi appelée “classe parente” ou “superclasse”. La classe de base fournit des fonctionnalités communes à ses classes dérivées. Apparaît pour la première fois dans le Module 03

Une opération qui convertit une valeur d’un type à un autre. Le C++ fournit quatre opérateurs de cast : static_cast, dynamic_cast, const_cast et reinterpret_cast. Apparaît pour la première fois dans le Module 06

Un type défini par l’utilisateur qui encapsule des données (attributs) et des fonctions (méthodes) qui opèrent sur ces données. Les classes sont la fondation de la programmation orientée objet en C++. Apparaît pour la première fois dans le Module 00

Le processus de conversion du code source en code machine. En C++, cela implique les étapes de préprocessing, compilation et édition de liens. Apparaît pour la première fois dans le Module 00

Un mot-clé qui déclare une variable, un paramètre ou une fonction membre comme constant (immuable). La const-correctness est une pratique importante en C++. Apparaît pour la première fois dans le Module 00

Une fonction membre spéciale appelée automatiquement quand un objet est créé. Utilisé pour initialiser les données de l’objet. A le même nom que la classe et pas de type de retour. Apparaît pour la première fois dans le Module 00

Une classe qui stocke une collection d’éléments. La STL fournit des conteneurs comme vector, list, map, stack et queue. Apparaît pour la première fois dans le Module 08

Un constructeur qui crée un nouvel objet comme copie d’un objet existant. Prend une référence const vers un objet de la même classe. Fait partie de la Forme Canonique Orthodoxe. Apparaît pour la première fois dans le Module 02

Copier un objet en dupliquant toutes ses données, y compris la mémoire allouée dynamiquement. Contraste avec la copie superficielle qui ne copie que les pointeurs. Apparaît pour la première fois dans le Module 02

Une classe qui hérite d’une classe de base. Aussi appelée “classe enfant” ou “sous-classe”. Obtient l’accès aux membres non-privés de sa classe de base. Apparaît pour la première fois dans le Module 03

Une fonction membre spéciale appelée automatiquement quand un objet est détruit. Utilisé pour nettoyer les ressources. Nommé avec un préfixe tilde : ~NomClasse(). Apparaît pour la première fois dans le Module 00

Une ambiguïté qui survient dans l’héritage multiple quand une classe hérite de deux classes qui partagent une classe de base commune. Résolu avec l’héritage virtuel. Apparaît pour la première fois dans le Module 03

Le principe POO de regrouper les données avec les méthodes qui opèrent dessus, et de restreindre l’accès direct aux données internes. Réalisé grâce aux spécificateurs d’accès. Apparaît pour la première fois dans le Module 00

Un événement qui perturbe le flux normal du programme, généralement une condition d’erreur. Le C++ utilise try, catch et throw pour la gestion des exceptions. Apparaît pour la première fois dans le Module 05

Un fichier (.hpp ou .h) contenant les déclarations de classes, fonctions et variables. Inclus dans les fichiers sources avec #include. Apparaît pour la première fois dans le Module 00

La région de mémoire utilisée pour l’allocation dynamique (via new/delete). Les objets sur le tas persistent jusqu’à leur suppression explicite. Contraste avec la pile. Apparaît pour la première fois dans le Module 01

Le mécanisme POO où une classe (dérivée) acquiert les propriétés et comportements d’une autre classe (base). Établit une relation “est-un”. Apparaît pour la première fois dans le Module 03

Un objet spécifique créé à partir d’une classe. Quand vous utilisez new ou déclarez une variable d’un type de classe, vous créez une instance. Apparaît pour la première fois dans le Module 00

Une classe avec uniquement des fonctions virtuelles pures, définissant un contrat que les classes implémentantes doivent respecter. Par convention, les noms d’interface commencent souvent par ‘I’. Apparaît pour la première fois dans le Module 04

Un objet qui pointe vers un élément dans un conteneur et peut parcourir les éléments du conteneur. Similaire aux pointeurs mais plus générique. Apparaît pour la première fois dans le Module 08

L’outil qui combine les fichiers objets compilés en un exécutable. Résout les références entre les fichiers. Apparaît pour la première fois dans le Module 00

Un bug où la mémoire allouée dynamiquement n’est jamais libérée, causant le programme à consommer de plus en plus de mémoire. Évité par l’utilisation correcte de delete ou RAII. Apparaît pour la première fois dans le Module 01

Une fonction définie à l’intérieur d’une classe. Aussi appelée “fonction membre”. Les méthodes peuvent accéder aux données privées de la classe. Apparaît pour la première fois dans le Module 00

Une région déclarative qui fournit une portée aux identifiants à l’intérieur. Évite les collisions de noms. La bibliothèque standard utilise le namespace std::. Apparaît pour la première fois dans le Module 00

Une instance d’une classe. Contient des données (attributs) et peut effectuer des actions (méthodes). Apparaît pour la première fois dans le Module 00

Définir un comportement personnalisé pour les opérateurs (+, -, <<, etc.) quand ils sont utilisés avec des types définis par l’utilisateur. Permet une syntaxe naturelle pour les opérations de classe. Apparaît pour la première fois dans le Module 02

Un pattern de conception C++ exigeant que les classes implémentent quatre membres spéciaux : constructeur par défaut, constructeur de copie, opérateur d’affectation par copie et destructeur. Apparaît pour la première fois dans le Module 02

Fournir une nouvelle implémentation pour une fonction virtuelle dans une classe dérivée. La version dérivée est appelée à la place de la version de base. Apparaît pour la première fois dans le Module 03

Une variable qui stocke une adresse mémoire. Déclaré avec *. Peut être déréférencé pour accéder à la valeur à cette adresse. Apparaît pour la première fois dans le Module 01

La capacité de traiter des objets de types différents à travers une interface commune. En C++, réalisé grâce aux fonctions virtuelles et à l’héritage. Apparaît pour la première fois dans le Module 04

Une fonction virtuelle déclarée avec = 0 qui n’a pas d’implémentation dans la classe de base. Rend la classe abstraite. Apparaît pour la première fois dans le Module 04

Un idiome C++ où les ressources sont acquises dans les constructeurs et libérées dans les destructeurs. Assure un nettoyage automatique même quand des exceptions surviennent. Apparaît pour la première fois dans le Module 02

Un alias pour une variable existante. Déclaré avec &. Doit être initialisé et ne peut pas être réassigné. Plus sûr que les pointeurs pour de nombreux cas d’utilisation. Apparaît pour la première fois dans le Module 01

La région de code où une variable ou un identifiant est valide. Les variables sortent de la portée quand leur bloc se termine. Apparaît pour la première fois dans le Module 00

Copier un objet en copiant seulement ses valeurs immédiates, y compris les adresses de pointeurs. Peut mener à des bugs de double suppression. Contraste avec la copie profonde. Apparaît pour la première fois dans le Module 02

La région de mémoire utilisée pour les variables locales et les appels de fonction. Gérée automatiquement (LIFO). Taille limitée. Contraste avec le tas. Apparaît pour la première fois dans le Module 01

Un mot-clé avec plusieurs significations : les variables membres statiques sont partagées entre toutes les instances, les fonctions membres statiques peuvent être appelées sans objet, les variables locales statiques persistent entre les appels de fonction. Apparaît pour la première fois dans le Module 00

Un modèle pour créer des classes ou fonctions génériques qui fonctionnent avec n’importe quel type de données. Le compilateur génère des versions spécifiques selon les besoins. Apparaît pour la première fois dans le Module 07

Une fonction membre déclarée avec virtual qui peut être redéfinie dans les classes dérivées. Permet le polymorphisme à l’exécution via la liaison dynamique. Apparaît pour la première fois dans le Module 04

Une table cachée de pointeurs de fonction utilisée par le compilateur pour implémenter l’appel de fonctions virtuelles. Chaque classe avec des fonctions virtuelles a une vtable. Apparaît pour la première fois dans le Module 04


ModuleTermes Clés
00Classe, Objet, Constructeur, Destructeur, Namespace, const, static
01Pointeur, Référence, Pile, Tas, Fuite de Mémoire, Adresse
02OCF, Constructeur de Copie, Copie Profonde, Copie Superficielle, Surcharge, RAII
03Héritage, Classe de Base, Classe Dérivée, Override, Problème du Diamant
04Polymorphisme, Fonction Virtuelle, Classe Abstraite, Interface, vtable
05Exception
06Cast (static, dynamic, const, reinterpret)
07Template
08-09Conteneur, Itérateur