Adelle
Fondamentalement, les fonctions Friend peuvent être introduites en C++ pour gérer certaines tâches spécifiques liées aux objets de classe.
En C++, nous savons que les membres privés ne sont pas accessibles depuis la classe extérieure.
C'est-à-dire qu'une fonction non-membre ne peut pas avoir accès aux données privées d'une classe.
Cependant, il pourrait y avoir une situation où nous aimerions que deux classes partagent une fonction particulière.
Par exemple, considérons un cas où deux classes, gestionnaire et scientifique ont été définies.
Nous aimerions utiliser une fonction revenue_tax() pour opérer sur les objets de ces deux classes.
Dans une telle situation, C++ permet de rendre la fonction commune conviviale avec les deux classes. Une telle fonction n'a pas besoin d'être membre d'une de ces classes.
Pour rendre la fonction extérieure conviviale pour une classe, nous devons simplement déclarer cette fonction comme amie d'une classe comme indiqué ci-dessous :
Class ABC
{
……
…..
Public :
……..
……..
Friend void xyz (void) ; //déclaration
};
Cette déclaration de fonction doit être précédée du mot-clé friend.
La fonction est définie ailleurs dans le programme comme une fonction c++ normale.
La définition de la fonction n'utilise ni le mot-clé friend ni l'opérateur de portée ::
Les fonctions déclarées avec le mot-clé friend sont appelées fonction friend.
Une fonction peut être déclarée comme amie dans n'importe quel nombre de classes.
Une fonction ami, bien que n'étant pas une fonction membre, dispose des droits d'accès complets aux membres privés de la classe.
Brooklyn
-> Fonction Friend normalement utilisée pour accéder au membre privé de la classe. -> Avec l'aide de la fonction Friend, nous pouvons accéder à différents objets de classe. -> Dans la surcharge d'opérateur, avec l'aide de la fonction friend, nous pouvons utiliser un argument de type de données primitif et l'utilisateur définit l'argument à une fonction.-> Ce n'est pas une fonction membre de la classe.-> Lorsque nous voulons une addition, une soustraction... Sur différentes classes, nous pouvons facilement utiliser la fonction d'ami.
Dorothée
Les fonctions d'ami sont nécessaires pour établir des ponts entre les classes et donner la permission à une fonction normale d'accéder aux données privées d'une classe.
Annabel
Jigar,
(a) Disons, dans la classe 'A', vous déclarez la fonction 'Fb' comme une fonction amie. Faut-il alors définir la fonction 'Fb' dans la même classe 'A' / même fichier ?
(b) Si la réponse à (a) est oui, alors en quoi une fonction membre et les fonctions amies sont-elles différentes ? La fonction 'Fb' aurait également pu être déclarée comme fonction membre. Quelle différence cela fait-il de le définir comme fonction amie par rapport à la fonction membre ?
(c) y a-t-il des inconvénients aux fonctions d'amis ?
Merci,
nyark
Laron
Les fonctions amies sont des fonctions non membres, précédées d'un mot-clé "ami". Il est utilisé pour accéder aux membres d'une classe étant une fonction non membre.
Kaylah
La fonction Friend est nécessaire pour accéder aux variables privées évidemment.
Pour les données privées ne sont pas accessibles par des fonctions non membres ou des classes extérieures.