C ++

C ++ venfunktion

C ++ venfunktion
En funktion er en blok kode, der udfører en bestemt opgave og leverer output. Det bruges hovedsageligt til at eliminere gentagen kode. I denne vejledning vil vi se på venfunktionen i C ++ og forklare dens koncept med arbejdseksempler.

Hvad er venfunktion?

Venfunktion er en ikke-medlem-funktion, der har adgang til de private og beskyttede medlemmer af en klasse. "Ven" er et nøgleord, der bruges til at angive, at en funktion er en klasses ven. Dette gør det muligt for compileren at vide, at den særlige funktion er en ven af ​​den givne klasse. Vennefunktionen skal derefter kunne få adgang til det private og beskyttede medlem af en given klasse. Uden vennens nøgleord kan en ikke-medlem ekstern funktion kun få adgang til de offentlige medlemmer af en klasse.

Nøglefunktioner i venfunktion:

Her er nøglefunktionerne i venfunktionen:

  1. En venfunktion er ikke inden for klassen.
  2. Venfunktionen kan ikke påberåbes ved hjælp af en forekomst af en klasse.
  3. Det kan få adgang til medlemmerne ved hjælp af objekt- og prikoperatoren.

Syntaks for venfunktion:

Her er syntaksen for venfunktionen:

klasse Class_Name_Demo

..
..
ven return_Type funktion_Navn (arg_1, arg_2,…);
;

Eksempel på venfunktion:

Lad os nu se på et eksempelprogram for at forstå begrebet venfunktion i C++. I nedenstående eksempelprogram har vi klassen “Friend_Demo”. Det har tre forskellige typer datamedlemmer, dvs.e., privat, beskyttet og offentligt.

Vi har defineret en anden funktion, i.e., "FriendDemo_Func ()" uden for klassen "Friend_Demo" og forsøgte at få adgang til medlemmerne (private, beskyttede og offentlige) i klassen "Friend_Demo".

Men som du kan se i output nedenfor, når vi kompilerer programmet, kaster det kompileringsfejl. Vennefunktionen vil nøjagtigt løse dette problem.

#omfatte
ved hjælp af namespace std;
klasse Friend_Demo

privat:
int i_private;
beskyttet:
int i_protected;
offentlig:
int i_public;
;
ugyldig venDemo_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 ();
returnere 0;

I det forrige program fik vi kompileringsfejl, mens vi forsøgte at få adgang til de private, beskyttede og offentlige medlemmer af en klasse fra en ikke-medlem-funktion. Dette skyldes, at en ikke-medlemsfunktion ikke har adgang til de private og beskyttede medlemmer af en klasse uden for klassens rækkevidde.

I dette eksempel har vi erklæret, at “friendDemo_Func ()” fungerer som en ven inden for klassens rækkevidde, i.e., "Friend_Demo":

ven ugyldig venDemo_Func ();

Vi har oprettet et objekt, dvs.e., "Fd" i klassen "Friend_Demo" inde i funktionen "friendDemo_Func ()". Nu kan vi få adgang til de private, beskyttede og offentlige medlemmer af klassen "Friend_Demo" ved hjælp af dot-operatoren. Vi har tildelt henholdsvis 10, 15 og 20 til i_private, i_protected og i_public.

Som du kan se i output nedenfor, er dette program nu kompileret og udført uden nogen fejl og udskriver output som forventet.

#omfatte
ved hjælp af namespace std;
klasse Friend_Demo

privat:
int i_private;
beskyttet:
int i_protected;
offentlig:
int i_public;
ven ugyldig venDemo_Func ();
;
ugyldig venDemo_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 ();
returnere 0;

Konklusion:

I denne artikel har jeg forklaret konceptet med venfunktionen i C++. Jeg har også vist to arbejdseksempler for at forklare, hvordan venfunktionen opfører sig i C++. Nogle gange kan venfunktionen være meget nyttig i et komplekst programmeringsmiljø. En programmør skal dog være forsigtig med at overbruge den og kompromittere dens OOP-funktioner.

Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...