POURQUOI HERITER - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

POURQUOI HERITER

Description:

On surchargera (red finira) le constructeur par copie lorsque la copie des valeurs des attributs ne r alisera pas une ' vraie ' copie (ex:gestion par pointeurs) ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 26
Provided by: gref6
Category:

less

Transcript and Presenter's Notes

Title: POURQUOI HERITER


1
Leçon 1 notion dobjet
IUP Génie InformatiqueBesançon Méthode et
Outils pour la Programmation Françoise Greffier
Université de Franche-Comté
2
notion dobjet
  • Classe / instance
  • Interface / implantation
  • Classification des méthodes
  • Constructeur(s), destructeur
  • Méthodes implicites
  • pointeur this

3
Une CLASSE est un MODELE
La classe rectangle fournit des méthodes
Une application
Utilise une (ou plusieurs) classe(s) include
... Par activation des méthodes fournies par
la classe
R.saisir()
4
Classe et instance de classe
  • Une classe
  • est un modèle

include "rectangle.h" void main
(void) rectangle R
Une classe est définie à la compilation
de lapplication
5
ACTIVATION D UNE METHODE
Toute méthode est déclenchée par une instance
include "rectangle.h" void main
(void) rectangle R R.saisir ( ) . . .
6
CONFIDENTIALITE
7
PRINCIPE de confidentialité
Principe Seules les informations
déclarées publiques dans une classe sont
accessibles à lutilisateur de cette classe.
TOUT LE RESTE EST DU DOMAINE PRIVE (NON
ACCESSIBLE DE l EXTERIEUR).
include "rectangle.h" void main
(void) rectangle R R.saisir ( ) R.lo 4
. . .
pour garantir le fonctionnement correct dun objet
8
REGLES D ACCESSIBILITE
Seuls les membres de la section public de (des)
classe(s) utilisées(s) sont accessibles.
Les membres d une classe ont accès à tous les
autres membres de cette classe
9
INTERFACE /IMPLANTATION
Interface mode d emploi protocole
d utilisation partie descriptive
INTERFACE d une classe est une partie
conceptuelle qui est distincte et qui précède
l IMPLANTATION de celle-ci.
Implantation représentation physique de
l objet code des méthodes
  • DISTINCTION entre
  • les fonctionnalités d un objet INTERFACE
  • et le codage de celles-ci IMPLANTATION

10
CONCEVOIR UNE CLASSE
Etape 1 spécifier une méthode Exemple saisie
du rectangle
11
CODER UNE CLASSE
Etape 2 implanter cette méthode Exemple
méthode de saisie du rectangle
include ltiostream.hgt
12
Organisation d'une INTERFACE
L interface d une classe est la partie
visible depuis l extérieur, par l utilisateur
de la classe. Elle décline les méthodes fournies
par la classe.
Facteur de qualité Une classification des
méthodes permettra à l utilisateur de la classe
de trouver facilement les méthodes dont il a
besoin.
13
CONSTRUCTEUR(S)
Un constructeur est une méthode qui permet de
créer une instance et qui peut aussi
initialiser létat de l'instance créée
Toute classe comprend au moins un constructeur
  • SYNTAXE prototype d un constructeur nom de la
    classe (paramètres(s) éventuel(s))

Exemple rectangle(void)
14
CONSTRUCTEUR(S)
  • Il existe trois types de constructeur
  • constructeur par défaut
  • constructeur par initialisation
  • constructeur par copie

15
Constructeur par défaut
  • SYNTAXE prototype du constructeur par défaut
  • nom de la classe (void)

rectangle (void) // IC est construite vide
include "rectangle.h" void main
(void) rectangle R . . .
16
Constructeur par initialisation
  • SYNTAXE prototype du constructeur par
    initialisation
  • nom de la classe (paramètres d initialisation)
  • Exemple

rectangle (double x, double y) //IC est
construite et lox, la y
include "rectangle.h" void main
(void) rectangle R (10,6) . . .
17
Constructeur par copie
  • Le constructeur par copie peut jouer un des rôles
    suivants
  • Création d une instance par recopie d une
    autre instance
  • Transmission d'argument par valeur
  • Retour d'une valeur par une fonction
  • SYNTAXE prototype du constructeur par copie
  • nom_classe(const nom_classe)
  • Exemple

rectangle (const rectangle B) //IC est
construite ICB
18
Constructeur par copie
  • include "rectangle.h"
  • void main (void)
  • rectangle R (10,6)
  • rectangle R2 (R)
  • rectangle R3 R
  • . . .

19
Constructeur par copie
IMPLANTATION
Cette méthode existe par défaut dans toute
classe. Le compilateur fait par défaut une copie
des valeurs des attributs de l'instance.
Cette copie est satisfaisante pour dupliquer la
longueur et la largeur d'un rectangle.
On surchargera (redéfinira) le constructeur par
copie lorsque la copie des valeurs des attributs
ne réalisera pas une  vraie  copie (exgestion
par pointeurs). Dans ce cas il sera impératif
de redéfinir le constructeur par copie, car
l'opération implicite de copie est déclenchée
automatiquement dans de nombreux contextes.
20
DESTRUCTEUR
Le destructeur joue le rôle suivant Une
instance a une durée de vie correspondant au bloc
dans lequel elle est déclarée. En fin de bloc
l'instance est détruite par un appel automatique
du destructeur. L exécution du destructeur
génère une remise en l état des ressources
(espace mémoire) utilisée à la création de
l instance.
  • SYNTAXE prototype du destructeur
  • nom_classe (void)
  • Exemple

rectangle (void) //destructeur
21
DESTRUCTEUR APPEL
  • include "rectangle.h"
  • void main (void)
  • rectangle R
  • R.saisir ( )
  • . . .

22
DESTRUCTEUR implantation
Action vide pour la classe rectangle car il n'y
a pas de ressources mémoire particulières à gérer.
rectangle rectangle (void)
Autre cas gestion dynamique de la
mémoire Lorsque le constructeur induit une
allocation de mémoire (new en C) alors le
destructeur comprend des instructions (delete en
C) permettant de libérer la mémoire
précédemment allouée.
23
METHODES IMPLICITES
  • Les méthodes suivantes sont prédéfinies pour
    chaque classe
  • constructeur par défaut
  • constructeur par copie
  • destructeur
  • affectation
  • tests d égalité
  • include "rectangle.h"
  • void main (void)
  • rectangle R,R2
  • R.saisir ( )
  • R2R //affectation

Les méthodes implicites peuvent être redéfinies.
Il est parfois impératif de le faire (gestion
dynamique de la mémoire).
24
Le pointeur this
Remarque il nest pas nécessaire d expliciter
un paramètre représentant l instance courante
(IC).
Mécanisme chaque méthode a un premier
paramètre implicite pour représenter l instance
courante.Ce paramètre a pour identificateur (en
C) this this désigne un pointeur sur IC
25
Le paramètre this
ILLUSTRATION implantation de la méthode
afficher
void rectangleafficher (void) cout ltlt lo
cout ltlt la
//cout ltlt this -gt lo //cout ltlt this -gt la
Write a Comment
User Comments (0)
About PowerShow.com