Introduction au C++ 
M. DIENG Abdoulaye 
Héritage
Sommaire 
1. Définition et intérêt 
2. Syntaxe et exemple 
3. Constructeurs et héritage 
4. Redéfinition de méthodes 
5. Redéfinition avec réutilisation
Définition et intérêt 
• Définition 
L’héritage est une technique permettant la création d’une 
classe à partir d’une autre en partageant ses attributs et 
méthodes 
• Intérêt 
– Spécialisation ou enrichissement : une nouvelle classe 
réutilise les membres (publiques ou protégés) d’une classe 
en y ajoutant des membres particuliers 
– Généralisation ou factorisation : réunir des classes 
possédant des caractéristiques communes dans une 
nouvelle classe plus générale
Syntaxe et exemple 
• Syntaxe 
class NomClasseFille : [protection] NomClasseMere{ 
// Déclaration des nouveaux attributs 
// Déclaration des nouvelles méthodes 
// Redéfinition de méthodes 
... 
}; 
• Le type de protection de la classe mère est public, protected 
ou private (par défaut). En général public est choisi. 
• Exemple (Un rectangle coloré est un rectangle) 
class RectangleCol : public Rectangle{ 
public: 
int couleur; 
... 
};
Constructeurs et héritage 
• Construire un objet B d’une classe dérivée, nécessite d’abord 
de construire un objet A de sa classe de base puis de le 
compléter par ce qui est spécifique à B. 
• Le constructeur de la classe de base est donc appelé avant le 
constructeur de la classe dérivée. 
• Si la classe de base a un constructeur autre que celui par 
défaut, la classe dérivée doit nécessairement avoir un 
constructeur explicite. 
• Syntaxe du constructeur d’une sous classe 
NomClasseFille(<parametres>) 
: NomClasseMere(<arguments>), 
<attribut1>(<valeur1>), 
... 
<attributn>(<valeurn>) 
{ 
// autres opérations 
}
Redéfinition de méthodes 
• Une sous-classe peut redéfinir les méthodes héritées et 
fournir des implémentations spécifiques pour celles-ci 
• La redéfinition d’une méthode cache le code de la méthode 
héritée 
• L’accès à une méthode est aussi redéfinissable dans une sous-classe 
pourvu que la directive soit identique ou plus large 
• Exemple 
– Une voiture électrique est une voiture dont l’opération de 
démarrage est différente 
– On démarre une voiture électrique en activant un 
disjoncteur
Redéfinition avec réutilisation 
• Le code d’une méthode redéfinie fait souvent appel à la 
méthode de la classe mère à l’aide de l’opérateur de résolution 
de portée. 
• Syntaxe 
NomDeLaClasseMere::nomDeLaMethode ([arguments])

Cpp3 : heritage

  • 1.
    Introduction au C++ M. DIENG Abdoulaye Héritage
  • 2.
    Sommaire 1. Définitionet intérêt 2. Syntaxe et exemple 3. Constructeurs et héritage 4. Redéfinition de méthodes 5. Redéfinition avec réutilisation
  • 3.
    Définition et intérêt • Définition L’héritage est une technique permettant la création d’une classe à partir d’une autre en partageant ses attributs et méthodes • Intérêt – Spécialisation ou enrichissement : une nouvelle classe réutilise les membres (publiques ou protégés) d’une classe en y ajoutant des membres particuliers – Généralisation ou factorisation : réunir des classes possédant des caractéristiques communes dans une nouvelle classe plus générale
  • 4.
    Syntaxe et exemple • Syntaxe class NomClasseFille : [protection] NomClasseMere{ // Déclaration des nouveaux attributs // Déclaration des nouvelles méthodes // Redéfinition de méthodes ... }; • Le type de protection de la classe mère est public, protected ou private (par défaut). En général public est choisi. • Exemple (Un rectangle coloré est un rectangle) class RectangleCol : public Rectangle{ public: int couleur; ... };
  • 5.
    Constructeurs et héritage • Construire un objet B d’une classe dérivée, nécessite d’abord de construire un objet A de sa classe de base puis de le compléter par ce qui est spécifique à B. • Le constructeur de la classe de base est donc appelé avant le constructeur de la classe dérivée. • Si la classe de base a un constructeur autre que celui par défaut, la classe dérivée doit nécessairement avoir un constructeur explicite. • Syntaxe du constructeur d’une sous classe NomClasseFille(<parametres>) : NomClasseMere(<arguments>), <attribut1>(<valeur1>), ... <attributn>(<valeurn>) { // autres opérations }
  • 6.
    Redéfinition de méthodes • Une sous-classe peut redéfinir les méthodes héritées et fournir des implémentations spécifiques pour celles-ci • La redéfinition d’une méthode cache le code de la méthode héritée • L’accès à une méthode est aussi redéfinissable dans une sous-classe pourvu que la directive soit identique ou plus large • Exemple – Une voiture électrique est une voiture dont l’opération de démarrage est différente – On démarre une voiture électrique en activant un disjoncteur
  • 7.
    Redéfinition avec réutilisation • Le code d’une méthode redéfinie fait souvent appel à la méthode de la classe mère à l’aide de l’opérateur de résolution de portée. • Syntaxe NomDeLaClasseMere::nomDeLaMethode ([arguments])