« Programmation C++/Les classes » : différence entre les versions

Contenu supprimé Contenu ajouté
m Révocation des modifications de Nathanael Bleibtreu (discussion) vers la dernière version de DavidL
Balise : Révocation
(ce que fait la classe et sa sémantique précise) Indépendant de (la manière dont on l'implémente)
Ligne 7 :
L'encapsulation est un mécanisme qui interdit d'accéder à certaines données depuis l'extérieur de la classe. Ainsi, un utilisateur de la classe ne pourra pas accéder à tous les éléments de celles-ci. Il sera obligé d'utiliser certaines fonctions membres de la classe (celles qui sont publiques). L'avantage de cette restriction est qu'il empêche par exemple un utilisateur de la classe de mettre les données dans un état incohérent. Vue de l'extérieur, la classe apparaît comme une boîte noire, qui a un certain comportement à laquelle on ne peut accéder que par les méthodes publiques. Cette notion est extrêmement puissante et permet d'éviter de nombreux effets de bord.
 
L'encapsulation permet de distinguer très nettement ce que fait la classe et sa sémantique précisesprécise, de la manière dont on l'implémente. Cette réflexion permet de répondre dans un premier temps à la question ''Comment utilise-t-on la classe ?'' Ce n'est que dans un second temps que l'aspect technique entre en jeu et que le programmeur doit répondre à la question ''Comment vais-je programmer les fonctionnalités de la classe qui ont été spécifiées ?'' L'encapsulation permet de faire abstraction du fonctionnement interne (c'est-à-dire, l'implémentation) d'une classe et ainsi de ne se préoccuper que des services rendus par celle-ci.
 
Le C++ implémente l'encapsulation en permettant de déclarer les membres d'une classe avec l'un des mots réservés <code>public</code>, <code>private</code> et <code>protected</code>. Ainsi, lorsqu'un membre est déclaré: