Chapitre Héritage Programmation C++

Embed Size (px)

Citation preview

  • 8/18/2019 Chapitre Héritage Programmation C++

    1/20

    Programmation Orientée Objet C++:Héritage

    Ecole Supérieure Privée d’ Ingénierie et deTechnologies

      2013_2014

      Réalisé par

    !aroua "ouiri

  • 8/18/2019 Chapitre Héritage Programmation C++

    2/20

    Plan

     Appel des constructeurs et des destructeurs

    Exemple

    Polymorphisme

    Introduction

    Modalités d’accès à la classe de base

  • 8/18/2019 Chapitre Héritage Programmation C++

    3/20

    ExempleEcrire une classe Employé ayant :

     

    Un NomUn PrénomUn CINUn salaireUne méthode ache !"Un constructeur par dé#aut pour initialiser mes

    attributs$un constructeur prenant en param%tre lesattributs nécessairesUne méthode Calculer&alaire!" 'ui retourne sonsalaire$

     

    (

  • 8/18/2019 Chapitre Héritage Programmation C++

    4/20

    Exemple&upposons 'u)on ait besoin de déclarer une autre classe *Ourier , $Cha'ue ourier est caractérisé par :

     

    Un NomUn PrénomUn CINUn salaireUn nbreheursPri-heureUne méthode ache !"Un constructeur par dé#autun constructeur prenant en param%tre lesattributs nécessairesUne méthode Calculer&alaire!" 'ui retourne sonsalaire !nbreheures.Pri-heure"

     /uelle est lasolution 000

    1

  • 8/18/2019 Chapitre Héritage Programmation C++

    5/20

    Solution

    #otre avis $$$$

    2

  • 8/18/2019 Chapitre Héritage Programmation C++

    6/20

    2 éme Solution

    Classe 3%re ouClasse de 4ase

    Classe 5lle ouClasse dériée

    6

  • 8/18/2019 Chapitre Héritage Programmation C++

    7/20

      %a !eilleure Solution $$$$

    2 éme Solution

    7

  • 8/18/2019 Chapitre Héritage Programmation C++

    8/20

      Introduction

    8e concept d)héritage: c9est l9un des #ondements de laP$O$O$

    8)héritage permet de donner ; une classe toutes lescaractéristi'ues d)une ou de plusieurs autres classes$

    8)héritage consiste< ; partir d)une classe e-istante =< ; dé5nir unenouelle classe 8a réutilisation de code$

     8a classe e-istante = est appelée classe m%re< ou classe de base$8a nouelle classe 4 est appelé classe 5lle ou classe dériée$ !hériteou dérie de la classe ="$

    Une classe 5lle hérite automati'uement des données et méthodesde sa classe m%re sans aoir ; les réécrire$

    &u'est ce (ue l'héritage $

    >

  • 8/18/2019 Chapitre Héritage Programmation C++

    9/20

      Introduction

     8 )héritage permet de réutiliser des classes e-istantes$

     8)héritage permet d)adapter des classes e-istantes ; tespropres besoins$

     8)héritage permet de #aire éoluer les classes sans aoir ;les réécrire de = ; ?$

     8)héritage permet d)éiter de construire des classes detaille trop importante$

    %’utilité de l'héritage $

    @

  • 8/18/2019 Chapitre Héritage Programmation C++

    10/20

    8es membres privés d9une classe de base ne sont pasaccessibles au- #onctions membre de sa classe dériée$

    8es membres pu)lics hérités par une classe dériée sontaccessibles depuis l9e-térieur$

    Un membre protégé *protected+ d’une classe de )aseest

    accessible depuis une classe dériée$ Il n9est pas accessibledepuis l9e-térieur$

     Modalités d’accès à la classe de base

    AB

  • 8/18/2019 Chapitre Héritage Programmation C++

    11/20

    Appel de Constructeur 

     Appeldesconstructeurs et des destructeurs

    AA

  • 8/18/2019 Chapitre Héritage Programmation C++

    12/20

    Appel de Destructeur 

     Appeldesconstructeurs et des destructeurs

    A

  • 8/18/2019 Chapitre Héritage Programmation C++

    13/20

    Appel de Constructeur/Destructeur

    A(

  • 8/18/2019 Chapitre Héritage Programmation C++

    14/20

    A1

    Pour construire un objet de type Ourier< il #autconstruire d)abord un objet de type Employé$

    8e constructeur de la classe de base !Employé "est donc

    appelé aant le constructeur de la classe dériée!Ourier"$

     De #aon symétri'ue< le destructeur de la classe debase !Employé" est appelé apr%s le destructeur de laclasse dériée !Ourier"$

    Appel de Constructeur/Destructeur

  • 8/18/2019 Chapitre Héritage Programmation C++

    15/20

    A2

    La notion de polmorp!isme

  • 8/18/2019 Chapitre Héritage Programmation C++

    16/20

    E,plo-e.cpp

    /uvrier.cpp

    La notion de polmorp!isme

    A6

  • 8/18/2019 Chapitre Héritage Programmation C++

    17/20

    /uvrier.cpp

    %e pol-,orphis,e 3écanisme 'ui consiste ;

    redé5nir des #onctions de mFme nom dans les classesde bases et les classes dériées$ !c9est uneredé5nition"$

    La notion de polmorp!isme

    A7

  • 8/18/2019 Chapitre Héritage Programmation C++

    18/20

     Re,ar(ueIl ne #aut pas mélanger la redé5nition et la surdé5nition$

    1. ne surdénition *ou surcharge+ per,etd'utiliser plusieurs ,éthodes (ui portent le ,,enom au sein d'une même classe, avec une

    signature diférente, pour que le système puisses'y retrouer$

    2. ne redénition per,et de ournir une nouvelle

    dénition d'une ,éthode d'une classe ascendante etainsi de substituer la description 'ui en été #aite$ Nousaons également le mFme nom 'ue la méthode parentemais surtout aec une signature rigoureusementidenti'ue$

    La notion de polmorp!isme

    A>

  • 8/18/2019 Chapitre Héritage Programmation C++

    19/20

    A@

    Un NomUn PrénomUn CIN

    Un salaireUne #onctionUne note donné par le che# hiérarchi'ueUne Prime sera erser selon la note de son che#hiérarchi'ue !A2GB : 72 de la prime"Une méthode acher !"

    un constructeur prenant en param%tre lesattributs nécessairesUne méthode Calculer&alaire!" 'ui retourne sonsalaire

     

    Excercice

    ous alleJ implémenter la Classe Cadre 'ui hérite de la classeEmploye et caractérisé par :

  • 8/18/2019 Chapitre Héritage Programmation C++

    20/20

    "D #$%

    B