Sie sind auf Seite 1von 20

Ecole Suprieure Prive d Ingnierie et de

Technologies

Programmation Oriente Objet C++:


Hritage

Ralis par :
Maroua Douiri

2013_2014

Plan
Exemple
Introduction
Modalits daccs la classe de base

Appel des constructeurs et des destructeurs

Polymorphisme

Exemple
Ecrire une classe Employ ayant :
Un Nom
Un Prnom
Un CIN
Un salaire
Une mthode affiche ()
Un constructeur par dfaut pour initialiser mes
attributs.
un constructeur prenant en paramtre les
attributs ncessaires
Une mthode CalculerSalaire() qui retourne son
salaire.

Exemple
Supposons qu'on ait besoin de dclarer une autre classe
Ouvrier .Chaque ouvrier est caractris par :
Un Nom
Un Prnom
Un CIN
Un salaire
Un nbreheurs
Prixheure
Une mthode affiche ()
Un constructeur par dfaut
un constructeur prenant en paramtre les
attributs ncessaires
Une mthode CalculerSalaire() qui retourne son
salaire (nbreheures*Prixheure)

Quelle est la
solution ???

Solution

Votre avis ????


5

2 me Solution
Classe Mre ou
Classe de Base

Classe fille ou
Classe drive

2 me Solution

La Meilleure Solution ????


7

Introduction
Qu'est ce que l'hritage ?
Le concept d'hritage: cest lun des fondements de la
P.O.O.
L'hritagepermet de donner une classe toutes les
caractristiques d'une ou de plusieurs autres classes.
L'hritage consiste, partir d'une classe existante A, dfinir une
nouvelle classe La rutilisation de code.

La classe existante A est appele classe mre, ou classe de base.


La nouvelle classe B est appel classe fille ou classe drive. (hrite
ou drive de la classe A).

Une classe fille hrite automatiquement des donnes et mthodes


de sa classe mre sans avoir les rcrire.

Introduction
Lutilit de l'hritage ?
L 'hritage permet de rutiliser des classes existantes.
L'hritage permet d'adapter des classes existantes tes
propres besoins.
L'hritage permet de faire voluer les classes sans avoir
les rcrire de A Z.

L'hritage permet d'viter de construire des classes de


taille trop importante.

Modalits daccs la classe de base

Les membres privs dune classe de base ne sont pas


accessibles aux fonctions membre de sa classe drive.
Les membres publics hrits par une classe drive sont
accessibles depuis lextrieur.

10

Un membre protg (protected) dune classe de base


est
accessible depuis une classe drive. Il nest pas accessible
depuis lextrieur.

Appel de Constructeur
Appel des constructeurs et des destructeurs

11

Appel de Destructeur
Appel des constructeurs et des destructeurs

12

Appel de Constructeur/Destructeur

13

Appel de Constructeur/Destructeur
Pour construire un objet de type Ouvrier, il faut
construire d'abord un objet de type Employ.

Le constructeur de la classe de base (Employ )est donc


appel avant le constructeur de la classe drive
(Ouvrier).

De faon symtrique, le destructeur de la classe de


base (Employ) est appel aprs le destructeur de la
classe drive (Ouvrier).
14

La notion de polymorphisme

15

La notion de polymorphisme
Employe.cpp

Ouvrier.cpp

16

La notion de polymorphisme

Ouvrier.cpp

Le polymorphisme: Mcanisme qui consiste


redfinir des fonctions de mme nom dans les classes
de bases et les classes drives. (cest une
redfinition).

17

La notion de polymorphisme
Remarque:
Il ne faut pas mlanger la redfinition et la surdfinition.
1. Une surdfinition (ou surcharge) permet
d'utiliser plusieurs mthodes qui portent le mme
nom au sein d'une mme classe, avec une
signature diffrente, pour que le systme puisse
s'y retrouver.
2. Une redfinition permet de fournir une nouvelle
dfinition d'une mthode d'une classe ascendante et
ainsi de substituer la description qui en t faite. Nous
avons galement le mme nom que la mthode parente
mais surtout avec une signature rigoureusement
identique.
18

Excercice
Vous allez implmenter la Classe Cadre qui hrite de la classe
Employe et caractris par :

Un Nom
Un Prnom
Un CIN
Un salaire
Une fonction
Une note donn par le chef hirarchique
Une Prime sera verser selon la note de son chef
hirarchique (15/20 : 75% de la prime)
Une mthode afficher ()
un constructeur prenant en paramtre les
attributs ncessaires
Une mthode CalculerSalaire() qui retourne son
salaire

19

TD N4
20

Das könnte Ihnen auch gefallen