Ce este funcția prieten?
Funcția prieten este o funcție care nu este membru, care poate accesa membrii privați și protejați ai unei clase. „Prieten” este un cuvânt cheie folosit pentru a indica faptul că o funcție este prietenul unei clase. Acest lucru permite compilatorului să știe că funcția specială este un prieten al clasei date. Funcția prieten ar trebui să poată accesa membrul privat și protejat al unei clase date. Fără cuvântul cheie prieten, o funcție externă non-membru poate accesa doar membrii publici ai unei clase.
Caracteristici cheie ale funcției prieten:
Iată principalele caracteristici ale funcției de prietenie:
- O funcție de prieten nu se află în sfera clasei.
- Funcția prieten nu poate fi invocată folosind o instanță a unei clase.
- Poate accesa membrii folosind operatorul obiect și punct.
Sintaxa funcției prieten:
Iată sintaxa funcției prieten:
class Class_Name_Demo..
..
prieten return_Type function_Name (arg_1, arg_2, ...);
;
Exemplu de funcție prieten:
Acum, haideți să analizăm un exemplu de program pentru a înțelege conceptul funcției prieten în C++. În exemplul de mai jos, avem clasa „Friend_Demo”. Are trei tipuri diferite de membri ai datelor, i.e., privat, protejat și public.
Am definit o altă funcție, i.e., „FriendDemo_Func ()” în afara scopului clasei „Friend_Demo” și a încercat să acceseze membrii (privați, protejați și publici) ai clasei „Friend_Demo”.
Dar, după cum puteți vedea în rezultatul de mai jos atunci când compilăm programul, acesta aruncă erori de compilare. Funcția prieten va rezolva exact această problemă.
#includefolosind spațiul de nume std;
clasa Friend_Demo
privat:
int i_privat;
protejat:
int i_protejat;
public:
int i_public;
;
void friendDemo_Func ()
Friend_Demo fd;
fd.i_privat = 10;
fd.i_protejat = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main ()
friendDemo_Func ();
retur 0;
În programul anterior, primeam erori de compilare în timp ce încercam să accesăm membrii privați, protejați și publici ai unei clase dintr-o funcție non-membru. Acest lucru se datorează faptului că o funcție non-membru nu are permisiunea de a accesa membrii privați și protejați ai unei clase din afara domeniului clasei.
Acum, în acest exemplu, am declarat funcția „friendDemo_Func ()” ca prieten în cadrul clasei, i.e., „Friend_Demo”:
prieten void prietenDemo_Func ();Am creat un obiect, i.e., „Fd” al clasei „Friend_Demo” din funcția „friendDemo_Func ()”. Acum, putem accesa membrii privați, protejați și publici ai clasei „Friend_Demo” folosind operatorul punct. Am atribuit 10, 15 și 20 lui i_private, i_protected și i_public, respectiv.
După cum puteți vedea în rezultatul de mai jos, acest program este acum compilat și executat fără erori și imprimă ieșirea așa cum era de așteptat.
#includefolosind spațiul de nume std;
clasa Friend_Demo
privat:
int i_privat;
protejat:
int i_protejat;
public:
int i_public;
prieten void prietenDemo_Func ();
;
void friendDemo_Func ()
Friend_Demo fd;
fd.i_privat = 10;
fd.i_protejat = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main ()
friendDemo_Func ();
retur 0;
Concluzie:
În acest articol, am explicat conceptul funcției prieten în C++. Am arătat, de asemenea, două exemple de lucru pentru a explica cum se comportă funcția prieten în C++. Uneori, funcția prieten poate fi foarte utilă într-un mediu complex de programare. Cu toate acestea, un programator ar trebui să fie precaut cu privire la utilizarea excesivă a acestuia și compromiterea caracteristicilor sale OOP.