Si l’on cherchait à résoudre les problèmes posés par l’affectation et la transmission par
valeur d’objets de type ens_heter, on serait amené à effectuer des « copies complètes »
(on dit souvent « profondes ») de l’objet, c’est-à-dire tenant compte non seulement de
ses membres, mais aussi de ses parties dynamiques.
Cela conduirait effectivement à recopier la partie dynamique de l’ensemble, c’est-àdire le tableau de pointeurs d’adresse base *. Mais que faudrait-il faire pour les
éléments eux-mêmes (pointés par les différentes valeurs du tableau) ? Même si l’on
admet qu’il faut également les dupliquer, il n’est pas possible de le faire sans connaître
la « structure » des objets concernés.
D’une manière générale, vous voyez que cet exemple, par les questions qu’il soulève,
plaide largement en faveur de la constitution de bibliothèques d’objets, dans lesquelles
sont définies, a priori, un certain nombre de règles communes. Parmi ces règles, on
pourrait notamment imposer à chaque objet de posséder une fonction (de nom unique)
en assurant la copie profonde ; naturellement, pour pouvoir l’utiliser correctement, il
faudrait que la ligature dynamique soit possible, c’est-à-dire que tous les objets
concernés dérivent d’un même objet de base.
284
Précédent

- 285/398

Suivant