« Programmation C++/Les classes » : différence entre les versions

Contenu supprimé Contenu ajouté
 
Ligne 840 :
== Classes abstraites ==
=== Présentation ===
Une classe abstraite est une classe pour laquelle on a défini une méthode mais on a explicitement indiqué qu'on ne fournira aucune implémentation de cette méthode.
Il est interdit de créer une instance d'une classe abstraite.
Ce mécanisme est extrêmement puissant pour manipuler des concepts abstraits.
On peut même avoir une classe pour laquelle toutes les méthodes sont abstraites, on parle alors de classe abstraite pure.
 
Une classe héritant d'une classe abstraite doit fournir une implémentation des méthodes abstraites ou bien elle sera à son tour une classe abstraite.
 
=== Syntaxe ===
<syntaxhighlight lang="cpp">
virtual type nom_méthode(paramètres)=0;
</syntaxhighlight>
Une telle méthode définie uniquement dans une sous-classe est nécessairement virtuelle.
Le mot-clé <code>virtual</code> est donc optionnel.
<syntaxhighlight lang="cpp">
type nom_méthode(paramètres)=0; // Méthode d'une sous classe encore abstraite
 
type nom_méthode(paramètres); // Méthode d'une sous classe plus abstraite
</syntaxhighlight>
 
=== Exemple ===