Engineering School, 2nd year
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

23 lines
1.5 KiB

Utilisation des Fonctions membres en tant qu'amies
Les fonctions membres d'une classe sont implicitement "amies de la classe", ce
qui implique qu'une fonction membre peut accéder aux variables d'instance de
l'objet sur lequel elle est appelée, mais aussi le cas échéant, aux variables
d'instance d'un objet de meme classe passé en parametre. Cette propriété est
beaucoup utilisée dans notre implémentation de ce TP, notamment pour nous
éviter l'écriture de nombreux accesseurs privés.
Cependant cette propriété met à mal le concept d'encapsulation, car il permet
à des objets d'accéder aux champs privés d'autres objets. Pour relativiser,
nous argumenterons que le code violant l'encapsulation est interne à la classe
"violée" et donc qu'il est écrit en tenant compte de l'implémentation de
celle ci, pour en tirer le meilleur partis en terme d'efficacité. Ce souci
d'efficacité est un élément important lors des choix d'implémentation, car
l'utilisation, somme toute périlleuse et difficile du langage C++, n'est due
qu'a la propriété de ce langage de permettre l'écriture d'applications très
efficaces, avantage qu'il serait peu judicieux de perdre en s'encombrant de
lourdeurs. Par ailleurs, l'avantage qu'a le respect de l'encapsulation à
l'intérieur d'un classe est de pouvoir changer la représentation de données
en ayant à réécrir qu'un minimum d'acceseurs. Or dans notre cas (TP3),
le format des données en interne est fixé une fois pour toute, ce qui
réduit considérablement l'interet induit par le respect de l'encapsulation.