Hva er vennefunksjon?
Vennefunksjon er en ikke-medlemsfunksjon som har tilgang til de private og beskyttede medlemmene i en klasse. "Venn" er et nøkkelord som brukes til å indikere at en funksjon er venn av en klasse. Dette lar kompilatoren vite at den spesielle funksjonen er en venn av den gitte klassen. Vennefunksjonen skal da kunne få tilgang til det private og beskyttede medlemmet av en gitt klasse. Uten vennens nøkkelord kan en ikke-medlem utenfor-funksjon bare få tilgang til de offentlige medlemmene i en klasse.
Nøkkelfunksjoner i vennefunksjon:
Her er de viktigste funksjonene i vennefunksjonen:
- En vennefunksjon er ikke innenfor klassen.
- Vennefunksjonen kan ikke påberopes ved hjelp av en forekomst av en klasse.
- Den har tilgang til medlemmene ved hjelp av objekt- og prikkoperatøren.
Syntaks for vennefunksjon:
Her er syntaksen til vennefunksjonen:
klasse Class_Name_Demo..
..
venn return_Type function_Name (arg_1, arg_2,…);
;
Eksempel på vennefunksjon:
La oss nå se på et eksempelprogram for å forstå konseptet med vennefunksjonen i C++. I eksemplet nedenfor har vi klassen “Friend_Demo”. Den har tre forskjellige typer datamedlemmer, dvs.e., privat, beskyttet og offentlig.
Vi har definert en annen funksjon, i.e., “FriendDemo_Func ()” utenfor omfanget av klassen “Friend_Demo” og prøvde å få tilgang til medlemmene (private, beskyttede og offentlige) i klassen “Friend_Demo”.
Men, som du kan se i utdataene nedenfor når vi kompilerer programmet, kaster det kompileringsfeil. Vennefunksjonen kommer til å løse dette problemet nøyaktig.
#inkluderebruker navneområde std;
klasse Friend_Demo
privat:
int i_private;
beskyttet:
int i_protected;
offentlig:
int i_public;
;
ugyldig vennDemo_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 ()
vennDemo_Func ();
retur 0;
I forrige program fikk vi kompileringsfeil mens vi prøvde å få tilgang til de private, beskyttede og offentlige medlemmene av en klasse fra en ikke-medlem-funksjon. Dette er fordi en ikke-medlemsfunksjon ikke har tilgang til de private og beskyttede medlemmene av en klasse utenfor klassens omfang.
Nå, i dette eksemplet, har vi erklært at “friendDemo_Func ()” fungerer som en venn innenfor klassen, i.e., “Friend_Demo”:
venn ugyldig friendDemo_Func ();Vi har laget et objekt, jeg.e., “Fd” i “Friend_Demo” -klassen i “friendDemo_Func ()” -funksjonen. Nå kan vi få tilgang til de private, beskyttede og offentlige medlemmene i klassen "Friend_Demo" ved hjelp av prikkoperatøren. Vi har tildelt henholdsvis 10, 15 og 20 til i_private, i_protected og i_public.
Som du kan se i utdataene nedenfor, er dette programmet nå samlet og utført uten feil og skriver ut utdata som forventet.
#inkluderebruker navneområde std;
klasse Friend_Demo
privat:
int i_private;
beskyttet:
int i_protected;
offentlig:
int i_public;
venn ugyldig friendDemo_Func ();
;
ugyldig vennDemo_Func ()
Friend_Demo fd;
fd.i_private = 10;
fd.jeg_beskyttet = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main ()
vennDemo_Func ();
retur 0;
Konklusjon:
I denne artikkelen har jeg forklart begrepet vennefunksjon i C++. Jeg har også vist to arbeidseksempler for å forklare hvordan vennefunksjonen oppfører seg i C++. Noen ganger kan vennefunksjonen være veldig nyttig i et komplekst programmeringsmiljø. En programmerer bør imidlertid være forsiktig med å overbruke den og kompromittere OOP-funksjonene.