Début 
// Appel explicite du destructeur de A 
super.~A() 
Fin 
FinClasse 
 
Programme obj11 
Var 
p_o1 :pointeur sur B 
Début 
p_o1←nouveau B // appel implicite au constructeur 
... 
Libérer p_o1 // appel implicite au destructeur 
Fin
3. Les membres statiques 
a. Attributs 
Quand vous créez une instance de classe (un objet), chaque objet résultant dispose de son propre espace mémoire 
et chaque attribut donné dispose donc de sa propre valeur totalement indépendante de celle du même attribut d’un 
autre objet. 
Pourtant il peut y avoir des cas où vous voudrez partager un attribut commun à tous les objets de ce type de classe. 
Le cas d’école est celui où vous voulez connaître le nombre de fois où la classe a été instanciée. Dans le cas de la 
classe Ecran, vous voudriez par exemple savoir combien d’objets de type Ecran ont été créés. 
Pour ça, l’attribut doit être commun à tous les objets, et chaque objet doit pouvoir modifier la valeur de cet attribut, 
valeur qui sera ensuite la même pour tous les objets. C’est le rôle de l’attribut statique. 
Un attribut statique est un attribut qui n’est créé qu’en un seul exemplaire et qui est commun à tous les objets de 
la classe. 
Vous le déclarez comme n’importe quel attribut, sauf que vous lui rajoutez le mot­clé  « statique »  après son type. 
L’attribut statique peut être privé ou public. Il peut être important d’initialiser une valeur par défaut pour un attribut 
statique. 
Classe Ecran 
attributs privés 
nb_ecrans←0 :entier statique 
... 
FinClasse
Plutôt que d’utiliser this pour y accéder, vous utilisez le nom de la classe elle­même, tant depuis l’extérieur de l’objet 
(si  l’attribut est public) que de l’intérieur.  L’exemple suivant montre les possibilités associées avec deux objets : le 
constructeur  rajoute  1,  le  destructeur  soustrait  1.  Les  étapes  intermédiaires  affichent  l’état  de  l’attribut  statique 
nb_ecrans. 
Classe Ecran 
attributs publics 
nb_ecrans←0 :entier statique 
... 
méthodes publiques 
Constructeur Ecran() 
Début 
nb_ecrans←nb_ecran+1 
Fin 
Destructeur ~Ecran() 
Début 
nb_ecrans←nb_ecran-1 
Fin 
Procédure nbEcrans() 
Début 
Afficher nb_ecrans 
FinProc 
FinClasse 
 
Programme obj11 
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
211
Précédent

- 211/220

Suivant