Différences entre données et fonctions membres

Il est important de comprendre la différence subtile qui sépare les données membres (champs) et les fonctions membres (méthodes) d’une structure. Elle est assez proche de la différence entre la structure elle-même (en tant que type, c’est-à-dire d’objet théorique) et les variables de ce type structure, que l’on appelle instances de la structure, qui sont au contraire des objets pratiques ayant une adresse et un volume mémoire déterminé.

Les champs ont des valeurs différentes d’une instance à l’autre. Par exemple, les deux instances suivantes :

fiche employe1, employe2;employe1.nom = "Dupont";employe2.nom = "Durand";

ont des champs nom différents.

Les méthodes sont identiques d’une instance à l’autre. Ainsi, si l’on écrit :

employe1.ecrit_np("Dupont", "Jean");employe2.ecrit_np("Durand", "Paul");

ce sera la même fonction fiche::ecrit_np qui sera appelée dans les deux cas ; seules différeront les valeurs des arguments, non seulement les arguments effectifs, mais aussi l’argument caché this, qui vaudra &employe1 dans le premier cas, et &employe2 dans le second.

Il n’est pas possible de faire en sorte que certaines instances d’une structure donnée utilisent certaines méthodes, et d’autres de différentes. Cependant, il existe un moyen simple, l’héritage, de créer une nouvelle structure identique à la première, sauf pour certaines méthodes qui différeront éventuellement (voir chapitre 8).

Précédent Précédent Sommaire Sommaire Suivant Suivant