Amies

Nous avons vu qu’une classe avait généralement des membres privés, et que ceux-ci n’étaient pas accessibles par des fonctions non membres. Cette restriction peut sembler lourde, mais elle est à la base même de la protection des données qui fait une grande partie de la puissance de la programmation par objets en général, et de C++ en particulier.

Dans certains cas, cependant, on souhaite pouvoir utiliser une fonction qui puisse accéder aux membres d’une classe, sans toutefois nécessairement disposer d’une instance de cette classe par laquelle l’appeler.

Une première possibilité consiste à utiliser un membre statique. Si l’on écrit par exemple :

class exemple {     // parties privées...     public :     static exemple* f(void);     // ...     };

il est possible d’appeler la fonction f sans passer par un membre, comme ceci :

exemple *p = exemple::f();

Cependant cette notation, si elle a l’avantage de la clarté, est assez lourde. C’est pourquoi le langage fournit les fonctions amies pour résoudre ce problème.

Précédent Précédent Sommaire Sommaire Suivant Suivant