Qu'est-ce que la fonction d'ami?
La fonction Friend est une fonction non membre qui peut accéder aux membres privés et protégés d'une classe. "Ami" est un mot-clé utilisé pour indiquer qu'une fonction est l'amie d'une classe. Cela permet au compilateur de savoir que la fonction particulière est un ami de la classe donnée. La fonction friend devrait alors pouvoir accéder au membre privé et protégé d'une classe donnée. Sans le mot-clé friend, une fonction externe non membre ne peut accéder qu'aux membres publics d'une classe.
Principales caractéristiques de la fonction Ami :
Voici les principales caractéristiques de la fonction ami :
- Une fonction d'ami n'est pas dans la portée de la classe.
- La fonction friend ne peut pas être invoquée à l'aide d'une instance d'une classe.
- Il peut accéder aux membres à l'aide de l'opérateur objet et point.
Syntaxe de la fonction d'ami :
Voici la syntaxe de la fonction friend :
classe Class_Name_Demo…
…
ami return_Type function_Name(arg_1, arg_2,… );
;
Exemple de fonction d'ami :
Maintenant, regardons un exemple de programme pour comprendre le concept de la fonction friend en C++. Dans l'exemple de programme ci-dessous, nous avons la classe "Friend_Demo". Il a trois types différents de membres de données, je.e., privé, protégé et public.
Nous avons défini une autre fonction, je.e., « friendDemo_Func() » en dehors de la portée de la classe « Friend_Demo » et a tenté d'accéder aux membres (privés, protégés et publics) de la classe « Friend_Demo ».
Mais, comme vous pouvez le voir dans la sortie ci-dessous lorsque nous compilons le programme, il génère des erreurs de compilation. La fonction ami va exactement résoudre ce problème.
#inclureen utilisant l'espace de noms std ;
classe Friend_Demo
privé:
int i_private;
protégé:
int i_protected;
Publique:
int i_public;
;
void friendDemo_Func()
Friend_Demo fd;
fd.i_privé = 10 ;
fd.i_protégé = 15 ;
fd.i_public = 20 ;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main()
amiDemo_Func();
renvoie 0 ;
Dans le programme précédent, nous obtenions des erreurs de compilation en essayant d'accéder aux membres privés, protégés et publics d'une classe à partir d'une fonction non membre. En effet, une fonction non membre n'est pas autorisée à accéder aux membres privés et protégés d'une classe en dehors de la portée de la classe.
Maintenant, dans cet exemple, nous avons déclaré la fonction « friendDemo_Func() » en tant qu'ami à l'intérieur de la portée de la classe, je.e., « Ami_Démo » :
ami void friendDemo_Func();Nous avons créé un objet, je.e., "fd" de la classe "Friend_Demo" dans la fonction "friendDemo_Func()". Maintenant, nous pouvons accéder aux membres privés, protégés et publics de la classe "Friend_Demo" à l'aide de l'opérateur point. Nous avons attribué 10, 15 et 20 à i_private, i_protected et i_public, respectivement.
Comme vous pouvez le voir dans la sortie ci-dessous, ce programme est maintenant compilé et exécuté sans aucune erreur et imprime la sortie comme prévu.
#inclureen utilisant l'espace de noms std ;
classe Friend_Demo
privé:
int i_private;
protégé:
int i_protected;
Publique:
int i_public;
ami void friendDemo_Func();
;
void friendDemo_Func()
Friend_Demo fd;
fd.i_privé = 10 ;
fd.i_protégé = 15 ;
fd.i_public = 20 ;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main()
amiDemo_Func();
renvoie 0 ;
Conclusion:
Dans cet article, j'ai expliqué le concept de la fonction ami en C++. J'ai également montré deux exemples de travail pour expliquer comment la fonction friend se comporte en C++. Parfois, la fonction ami peut être très utile dans un environnement de programmation complexe. Cependant, un programmeur doit faire attention à ne pas en abuser et à compromettre ses fonctionnalités de POO.