Rappels
Appels du constructeur et du destructeur
Dans tous les cas (objets statiques, automatiques ou dynamiques), s’il y a appel du
constructeur, celui-ci a lieu après l’allocation de l’emplacement mémoire destiné à
l’objet. De même, s’il existe un destructeur, ce dernier est appelé avant la libération
de l’espace mémoire associé à l’objet.
Les objets automatiques et statiques
Les objets automatiques sont créés par une déclaration soit dans une fonction, soit au
sein d’un bloc. Ils sont créés au moment de l’exécution de la déclaration (laquelle, en
C++, peut apparaître n’importe où dans un programme). Ils sont détruits lorsqu’on sort
de la fonction ou du bloc.
Les objets statiques sont créés par une déclaration située en dehors de toute fonction
ou par une déclaration précédée du mot-clé static (dans une fonction ou dans un bloc).
Ils sont créés avant l’entrée dans la fonction main et détruits après la fin de son
exécution.
Les objets temporaires
L’appel explicite, au sein d’une expression, du constructeur d’un objet provoque la
création d’un objet temporaire (on n’a pas accès à son adresse) qui pourra être
automatiquement détruit dès qu’il ne sera plus utile. Par exemple, si une classe point
possède le constructeur point (float, float) et si a est de type point, nous pouvons écrire :
a = point (1.5, 2.25) ;
Ne confondez pas une telle affectation avec une initialisation d’un objet lors de sa
déclaration.
Cette instruction provoque la création d’un objet temporaire de type point (avec appel
du constructeur concerné), suivie de l’affectation de cet objet à a.
164
Précédent

- 165/398

Suivant