pointeurs, les emplacements pointés ne seront pas soumis à cette recopie. Si un tel effet
est nécessaire (et il le sera souvent !), il ne pourra être obtenu qu’en « surdéfinissant »
l’opérateur d’affectation pour la classe concernée (voyez le chapitre consacré à la
surdéfinition d’opérateurs).
Constructeur et destructeur
Une fonction membre portant le même nom que sa classe se nomme un constructeur.
Dès qu’une classe comporte un constructeur (au moins un), il n’est plus possible de
déclarer un objet du type correspondant, sans fournir des valeurs pour les arguments
requis par ce constructeur (sauf si ce dernier ne possède aucun argument). Le
constructeur est appelé après l’allocation de l’espace mémoire destiné à l’objet.
Par définition, un constructeur ne renvoie pas de valeur (aucune indication de type, pas
même void, ne doit figurer devant sa déclaration ou sa définition).
Une fonction membre portant le même nom que sa classe, précédé du symbole tilde (~),
se nomme un destructeur. Le destructeur est appelé avant la libération de l’espace
mémoire associé à l’objet. Par définition, un destructeur ne peut pas comporter
d’arguments et il ne renvoie pas de valeur (aucune indication de type ne doit être
prévue).
Membres donnée statiques
Un membre donnée déclaré avec l’attribut static est partagé par tous les objets de la
même classe. Il existe même lorsque aucun objet de cette classe n’a été déclaré. Un
membre donnée statique doit être initialisé explicitement, à l’extérieur de la classe
(même s’il est privé), en utilisant l’opérateur de résolution de portée (::) pour spécifier
sa classe. En général, son initialisation se fait dans la définition de la classe.
Exploitation d’une classe
En pratique, à l’utilisateur d’une classe (on dit souvent le « client »), on fournira :
un fichier en-tête contenant la déclaration de la classe : l’utilisateur l’employant
devra l’inclure dans tout programme faisant appel à la classe en question ;
un module objet résultant de la compilation du fichier source contenant la définition
de la classe, c’est-à-dire la définition de ses fonctions membre.
133
Précédent

- 134/398

Suivant