Cpp3 : heritage

228 vues

Publié le

c++ : héritage

Publié dans : Logiciels
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
228
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cpp3 : heritage

  1. 1. Introduction au C++ M. DIENG Abdoulaye Héritage
  2. 2. 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
  3. 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. 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. 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. 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. 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])

×