Cos'è la funzione amico??
La funzione amico è una funzione non membro che può accedere ai membri privati e protetti di una classe. “Amico” è una parola chiave usata per indicare che una funzione è amica di una classe. Ciò consente al compilatore di sapere che la particolare funzione è amica della classe data. La funzione amico quindi dovrebbe essere in grado di accedere al membro privato e protetto di una data classe. Senza la parola chiave amico, una funzione esterna non membro può accedere solo ai membri pubblici di una classe.
Caratteristiche principali della funzione amico:
Ecco le caratteristiche principali della funzione amico:
- Una funzione amico non è nell'ambito della classe.
- La funzione friend non può essere invocata usando un'istanza di una classe.
- Può accedere ai membri usando l'oggetto e l'operatore punto.
Sintassi della funzione amico:
Ecco la sintassi della funzione amico:
class Nome_Classe_Demo…
…
amico return_Type nome_funzione(arg_1, arg_2,… );
;
Esempio di funzione amico:
Ora, esaminiamo un programma di esempio per comprendere il concetto della funzione amico in C++. Nel programma di esempio seguente, abbiamo la classe "Friend_Demo". Ha tre diversi tipi di membri dati, i.e., privato, protetto e pubblico.
Abbiamo definito un'altra funzione, i.e., "friendDemo_Func()" al di fuori dell'ambito della classe "Friend_Demo" e ha tentato di accedere ai membri (privati, protetti e pubblici) della classe "Friend_Demo".
Ma, come puoi vedere nell'output qui sotto quando compiliamo il programma, genera errori di compilazione. La funzione amico risolverà esattamente questo problema.
#includereusando lo spazio dei nomi std;
classe Friend_Demo
privato:
int i_privato;
protetto:
int i_protetto;
pubblico:
int i_public;
;
void friendDemo_Func()
Friend_Demo fd;
fd.i_privato = 10;
fd.i_protetto = 15;
fd.i_pubblico = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
intero principale()
friendDemo_Func();
restituisce 0;
Nel programma precedente, ricevevamo errori di compilazione durante il tentativo di accedere ai membri privati, protetti e pubblici di una classe da una funzione non membro. Questo perché una funzione non membro non può accedere ai membri privati e protetti di una classe dall'esterno dell'ambito della classe.
Ora, in questo esempio, abbiamo dichiarato la funzione "friendDemo_Func()" come amico all'interno dello scope della classe, i.e., “Amico_Demo”:
amico void amicoDemo_Func();Abbiamo creato un oggetto, i.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 punto. Abbiamo assegnato 10, 15 e 20 rispettivamente a i_private, i_protected e i_public.
Come puoi vedere nell'output qui sotto, questo programma è ora compilato ed eseguito senza errori e stampa l'output come previsto.
#includereusando lo spazio dei nomi std;
classe Friend_Demo
privato:
int i_privato;
protetto:
int i_protetto;
pubblico:
int i_public;
amico void amicoDemo_Func();
;
void friendDemo_Func()
Friend_Demo fd;
fd.i_privato = 10;
fd.i_protetto = 15;
fd.i_pubblico = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
intero principale()
friendDemo_Func();
restituisce 0;
Conclusione:
In questo articolo ho spiegato il concetto della funzione amico in Do++. Ho anche mostrato due esempi di lavoro per spiegare come si comporta la funzione amico in C++. A volte, la funzione amico può essere molto utile in un ambiente di programmazione complesso. Tuttavia, un programmatore dovrebbe essere cauto nell'usarlo in modo eccessivo e comprometterne le funzionalità OOP.