Kaj je prijateljska funkcija?
Funkcija prijatelja je nečlanska funkcija, ki lahko dostopa do zasebnih in zaščitenih članov razreda. »Friend« je ključna beseda, ki označuje, da je funkcija prijatelj razreda. To prevajalniku omogoča, da ve, da je določena funkcija prijatelj danega razreda. Funkcija prijatelja bi potem morala imeti dostop do zasebnega in zaščitenega člana danega razreda. Brez ključne besede friend lahko zunanja funkcija, ki ni član, dostopa samo do javnih članov razreda.
Ključne značilnosti prijateljske funkcije:
Tu so ključne značilnosti funkcije prijatelja:
- Funkcija prijatelja ni v obsegu predavanja.
- Funkcije prijatelja ni mogoče priklicati s primerkom razreda.
- Do članov lahko dostopa s pomočjo operatorja predmetov in pik.
Sintaksa funkcije prijatelja:
Tu je sintaksa funkcije prijatelj:
razred Class_Name_Demo..
..
prijatelj return_Type function_Name (arg_1, arg_2,…);
;
Primer prijateljske funkcije:
Zdaj pa si oglejmo primer programa za razumevanje koncepta funkcije prijatelja v jeziku C++. V spodnjem primeru programa imamo razred "Friend_Demo". Ima tri različne vrste podatkovnih članov, tj.e., zasebni, zaščiteni in javni.
Določili smo drugo funkcijo, tj.e., “FriendDemo_Func ()” izven obsega razreda “Friend_Demo” in je poskušal dostopati do članov (zasebnih, zaščitenih in javnih) razreda “Friend_Demo”.
Toda, kot lahko vidite v spodnjem izhodu, ko prevajamo program, vrže napake pri prevajanju. Funkcija prijatelja bo natančno rešila to težavo.
#includeuporaba imenskega prostora std;
razred Friend_Demo
zasebno:
int i_private;
zaščiteno:
int i_protected;
javno:
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 ();
vrnitev 0;
V prejšnjem programu smo med poskusom dostopa do zasebnih, zaščitenih in javnih članov razreda iz nečlanske funkcije prejemali napake pri prevajanju. To je zato, ker funkcija, ki ni članica, ne sme dostopati do zasebnih in zaščitenih članov razreda zunaj obsega razreda.
Zdaj smo v tem primeru funkcijo “friendDemo_Func ()” razglasili kot prijatelja znotraj obsega razreda, i.e., “Friend_Demo”:
friend void friendDemo_Func ();Ustvarili smo objekt, tj.e., “Fd” razreda “Friend_Demo” znotraj funkcije “friendDemo_Func ()”. Zdaj imamo dostop do zasebnih, zaščitenih in javnih članov razreda »Friend_Demo« s pomočjo operatorja pik. I_private, i_protected oziroma i_public smo dodelili 10, 15 in 20.
Kot lahko vidite v spodnjem izhodu, je ta program zdaj sestavljen in izveden brez napak in natisne izhod po pričakovanjih.
#includeuporaba imenskega prostora std;
razred Friend_Demo
zasebno:
int i_private;
zaščiteno:
int i_protected;
javno:
int i_public;
friend 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 ();
vrnitev 0;
Zaključek:
V tem članku sem razložil koncept funkcije prijatelja v jeziku C++. Pokazal sem tudi dva delovna primera, ki pojasnjujeta, kako se funkcija prijatelja obnaša v jeziku C++. Včasih je funkcija prijatelja lahko zelo koristna v zapletenem programskem okolju. Programer pa mora biti previden, če ga preveč zlorablja in ogroža njegove funkcije OOP.