Il est important de comprendre la différence subtile qui sépare les données membres (champs) et les fonctions membres (méthodes) dune structure. Elle est assez proche de la différence entre la structure elle-même (en tant que type, cest-à-dire dobjet théorique) et les variables de ce type structure, que lon 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 dune instance à lautre. 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 dune instance à lautre. Ainsi, si lon é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 largument caché this
, qui vaudra &employe1
dans le premier cas, et &employe2
dans le second.
Il nest pas possible de faire en sorte que certaines instances dune structure donnée utilisent certaines méthodes, et dautres de différentes. Cependant, il existe un moyen simple, lhé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 | Sommaire | Suivant |