Professional Documents
Culture Documents
d'une classe
Spcification d'une classe
Codage du comportement des objets d'une
classe
Utilisation d'une classe
Droit d'accs aux membres d'une classe
Fonctions membres
notions
de constructeur/destructeur
fonctions membres en ligne
auto-rfrence
fonctions constantes
H. Afli, M1 C++, Universit du Maine, 2012-2013
NOTION DE CLASSE
1/ Classe et type
gnralisation de la notion de TYPE
utilisateur
regrouper les donnes et le comportement
autoriser l'encapsulation des donnes
spcifier et raliser des TDA
2/ Classe et POO
outil de conception et de programmation
modliser le rel, abstraction
organiser le code (modularit)
factoriser ou rutiliser le code (hritage)
CLASSE ET OBJETS
mme
en
structure
comportement
instance de la classe ou
un reprsentant de la classe ou
un objet de la classe ou
en C++ : une variable dont le type est le nom de la
classe
OBJETS INFORMATIQUES
un Entier
732
un CompteEnBanque
unePersonne
nom .
adresse .
-------------........
........
numro .
titulaire .
solde .
--------------------donneTonSolde
dpose(uneSomme)
retire(uneSomme)
afficheToi
une Chaine
1
2
3
------------afficheToi
une Chaine
L
un Caractre
un Caractre
un Rel
2025.54
un Caractre
CLASSES/INSTANCES : EXEMPLE
Classe Compte
objet abstrait
(classe)
structure
numro
solde
titulaire
objets concrets
(instances de la classe)
numro 8765
solde 5000
titulaire Jean
unCompte
comportement
donneTonSolde
dpose
retire
afficheToi
.
numro
2345
solde
-3milliards
titulaire Tapie
unAutreCompte
CLASSES/INSTANCES
tout objet est instance d'une classe
la classe spcifie la structure de l'objet
et son comportement
le
C++
: donnes membres
le
: fonctions membres
PROGRAMMATION OBJETS
3 moments
spcification d'une classe
tape de modlisation
point de vue du concepteur de la classe
C++ : dclaration de la classe dans un fichier. h
interface de la classe :
la
EN PRATIQUE
par dfaut : un membre est priv
en gnral on place les dclarations
de
PROGRAMMATION OBJETS
3 moments
spcification d'une classe
codage des mthodes d'une classe
tape
de ralisation
point de vue du programmeur de la classe
C++ : dfinition des mthodes de la classe
PROGRAMMATION OBJETS
3 moments
spcification d'une classe
codage des mthodes d'une classe
utilisation d'une classe
tape
en C
une
le
au type pile,
sont invoques en envoyant un message un objet de type
pile
publique
:
peut tre accde (resp. invoque)
dans n'importe quelle fonction
prive :
peut tre accde (resp. invoque)
dans des fonctions membres (ou amies) de la classe o
elle est dclare
PLAN
CONSTRUCTEURS ET DESTRUCTEURS
(PRINCIPE)
type utilisateur sr ncessite
allocation et initialisation de mmoire
garanties
constructeurs et destructeur permettent
au
concepteur : d'orchestrer
initialisation
le
constructeurs
fonctions membres publiques (en gnral)
identificateur : nom de la classe
aucun type de retour (pas mme void)
appel automatiquement chaque cration
d'objet
destructeur
fonction membre publique
identificateur : nom de la classe prcd de tilde ~
ni argument ni de valeur de retour
appel automatiquement chaque destruction
d'objet
INVOCATION AUTOMATIQUE
surchargs
possder
pour
par le compilateur
pas en envoyant un message l'objet
DESTRUCTEUR
rle :
libre la mmoire alloue pour l'objet
rgle :
plus gnralement
PLAN
criture 1 :
la dfinition de la fonction membre (pas seulement
sa dclaration) est l'intrieur de la dfinition de la
classe
criture 2 :
la dfinition de la fonction membre est extrieure
la dclaration de la classe mais est prcde du
mot cl inline
dans ce cas
la dfinition doit figurer aussi dans le fichier d'entte
criture 1 :
plus
criture 2 :
plus
long crire
permet de sparer l'interface d'une classe de
sa ralisation
conseil : on place les fct en ligne
soit
AUTO-RFRENCE (THIS)
le mot-cl "this"
dans la dfinition d'une fonction membre
reprsente un pointeur sur l'objet qui invoque la
fonction membre
this est un pointeur constant (pseudo-variable)
utilisation de this
inutile (ringard) : pour accder aux membres d'une
classe
indispensable : pour crire des fonctions membres qui
manipulent des pointeurs
distinguer :
fonction constante
fonction dont un argument est constant
AUTOVALUATION