Affectation et comparaison d’objets
205
Tout se passe comme si (au moins jusqu’à une éventuelle modification de a ou de b) a et b
désignaient le même objet.
1.2 Second exemple
Considérons les instructions suivantes :
Point a, b, c
.....
a := Création Point (1, 10)
b := Création Point (2, 20)
Après leur exécution, on aboutit à cette situation :
Exécutons alors ces instructions, analogues à celles que nous avions utilisées pour échanger
le contenu de deux variables d’un type de base :
c := a ;
a := b ;
b := c ;
On aboutit à cette situation :
Nous avons ainsi procédé à l’échange des valeurs des variables a et b (des références), sans
modifier la valeur des objets référencés.
Notez bien qu’il n’existe ici que deux objets de type Point mais que l’on a bien trois variables de type Point (trois références, dont deux de même valeur).
b
1
10
2
20
a
b
1
10
2
20
a
c
205
Tout se passe comme si (au moins jusqu’à une éventuelle modification de a ou de b) a et b
désignaient le même objet.
1.2 Second exemple
Considérons les instructions suivantes :
Point a, b, c
.....
a := Création Point (1, 10)
b := Création Point (2, 20)
Après leur exécution, on aboutit à cette situation :
Exécutons alors ces instructions, analogues à celles que nous avions utilisées pour échanger
le contenu de deux variables d’un type de base :
c := a ;
a := b ;
b := c ;
On aboutit à cette situation :
Nous avons ainsi procédé à l’échange des valeurs des variables a et b (des références), sans
modifier la valeur des objets référencés.
Notez bien qu’il n’existe ici que deux objets de type Point mais que l’on a bien trois variables de type Point (trois références, dont deux de même valeur).
b
1
10
2
20
a
b
1
10
2
20
a
c
