Funzione di amici C ++

Funzione di amici C ++
Una funzione è un blocco di codice che esegue una determinata attività e fornisce l'output. È usato principalmente per eliminare il codice ripetitivo. In questo tutorial, esamineremo la funzione degli amici in C ++ e spiegheremo il suo concetto con esempi di lavoro.

Qual è la funzione amici?

La funzione di amici è una funzione non membro in grado di accedere ai membri privati ​​e protetti di una classe. "Friend" è una parola chiave usata per indicare che una funzione è l'amica di una classe. Ciò consente al compilatore di sapere che la funzione particolare è un amico della classe data. La funzione dell'amico dovrebbe quindi essere in grado di accedere al membro privato e protetto di una determinata classe. Senza la parola chiave degli amici, una funzione esterna non membro può accedere solo ai membri pubblici di una classe.

Caratteristiche chiave della funzione degli amici:

Ecco le caratteristiche chiave della funzione dell'amico:

  1. Una funzione di un amico non è nell'ambito della classe.
  2. La funzione dell'amico non può essere invocata usando un'istanza di una classe.
  3. Può accedere ai membri utilizzando l'operatore oggetto e DOT.

Sintassi della funzione degli amici:

Ecco la sintassi della funzione dell'amico:

classe class_name_demo

..
..
amico return_type function_name (arg_1, arg_2, ...);
;

Esempio di funzione di amici:

Ora, esaminiamo un programma di esempio per comprendere il concetto della funzione di amici in C++. Nel programma di esempio seguente, abbiamo la classe "Friend_demo". Ha tre diversi tipi di membri dei dati, i.e., privato, protetto e pubblico.

Abbiamo definito un'altra funzione, io.e., "FriendDemo_Func ()" al di fuori dell'ambito della classe "Friend_demo" e ha cercato di accedere ai membri (privati, protetti e pubblici) della classe "Friend_demo".

Ma, come puoi vedere nell'output di seguito quando compiliamo il programma, lancia errori di compilation. La funzione dell'amico risolverà esattamente questo problema.

#includere
Utilizzo dello spazio dei nomi std;
Classe Friend_demo

privato:
int i_private;
protetto:
int i_protected;
pubblico:
int i_public;
;
void frienddemo_func ()

Friend_demo fd;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

friendDemo_Func ();
restituzione 0;

Nel programma precedente, stavamo ottenendo errori di compilation mentre cercavamo di accedere ai membri privati, protetti e pubblici di una classe da una funzione non membro. Questo perché una funzione non membro non è consentito accedere ai membri privati ​​e protetti di una classe al di fuori dell'ambito della classe.

Ora, in questo esempio, abbiamo dichiarato la funzione "FriendDemo_func ()" come amico all'interno dell'ambito della classe, i.e., "Friend_demo":

amico void friendDemo_func ();

Abbiamo creato un oggetto, io.e., "FD" della classe "Friend_demo" all'interno della funzione "FriendDemo_Func ()". Ora possiamo accedere ai membri privati, protetti e pubblici della classe "Friend_demo" utilizzando l'operatore DOT. Abbiamo assegnato 10, 15 e 20 a i_private, i_protected e i_public, rispettivamente.

Come puoi vedere nell'output di seguito, questo programma è ora compilato ed eseguito senza errori e stampare l'output come previsto.

#includere
Utilizzo dello spazio dei nomi std;
Classe Friend_demo

privato:
int i_private;
protetto:
int i_protected;
pubblico:
int i_public;
amico void friendDemo_func ();
;
void frienddemo_func ()

Friend_demo fd;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

friendDemo_Func ();
restituzione 0;

Conclusione:

In questo articolo, ho spiegato il concetto della funzione di amici in C++. Ho anche mostrato due esempi di lavoro per spiegare come si comporta la funzione dell'amico in c++. A volte, la funzione degli amici può essere molto utile in un ambiente di programmazione complesso. Tuttavia, un programmatore dovrebbe essere cauto sull'abbonamento e compromettendo le sue caratteristiche OOP.