C++

C++ Vriendfunctie

C++ Vriendfunctie
Een functie is een codeblok dat een bepaalde taak uitvoert en de uitvoer levert. Het wordt voornamelijk gebruikt om repetitieve code te elimineren. In deze tutorial zullen we kijken naar de vriend-functie in C++ en het concept uitleggen met werkende voorbeelden.

Wat is de vriendenfunctie??

Vriendfunctie is een niet-ledenfunctie die toegang heeft tot de privé- en beschermde leden van een klas. "Vriend" is een sleutelwoord dat wordt gebruikt om aan te geven dat een functie de vriend van een klasse is. Hierdoor kan de compiler weten dat de specifieke functie een vriend is van de gegeven klasse. De vriendenfunctie zou dan toegang moeten hebben tot het privé en beschermde lid van een bepaalde klasse. Zonder het trefwoord vriend heeft een externe functie die geen lid is alleen toegang tot de openbare leden van een klas.

Belangrijkste kenmerken van de vriendfunctie:

Dit zijn de belangrijkste kenmerken van de vriendenfunctie:

  1. Een vriendenfunctie valt niet binnen het bereik van de klasse.
  2. De vriendfunctie kan niet worden aangeroepen met een instantie van een klasse.
  3. Het heeft toegang tot de leden met behulp van de object- en puntoperator.

Syntaxis van vriendfunctie:

Hier is de syntaxis van de vriendfunctie:

class Class_Name_Demo



vriend return_Type function_Name(arg_1, arg_2,… );
;

Voorbeeld van een vriendfunctie:

Laten we nu een voorbeeldprogramma bekijken om het concept van de vriendfunctie in C . te begrijpen++. In het onderstaande voorbeeldprogramma hebben we de klasse "Friend_Demo". Het heeft drie verschillende soorten gegevensleden, namelijk.e., privé, beschermd en openbaar.

We hebben een andere functie gedefinieerd, i.e., "friendDemo_Func()" buiten het bereik van de "Friend_Demo" -klasse en probeerde toegang te krijgen tot de leden (privé, beschermd en openbaar) van de "Friend_Demo" -klasse.

Maar zoals je kunt zien in de onderstaande uitvoer wanneer we het programma compileren, genereert het compilatiefouten. De vriendenfunctie gaat dit probleem precies oplossen.

#include
namespace std; gebruiken;
klasse Friend_Demo

privaat:
int i_private;
beschermd:
int i_protected;
openbaar:
int i_public;
;
void vriendDemo_Func()

Friend_Demo fd;
fd.i_private = 10;
fd.i_beschermd = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int hoofd()

vriendDemo_Func();
retourneer 0;

In het vorige programma kregen we compilatiefouten terwijl we probeerden toegang te krijgen tot de privé, beschermde en openbare leden van een klasse vanuit een niet-lidfunctie. Dit komt omdat een niet-ledenfunctie geen toegang heeft tot de privé en beschermde leden van een klasse van buiten het bereik van de klasse.

Nu, in dit voorbeeld, hebben we de functie "friendDemo_Func()" gedeclareerd als een vriend binnen het bereik van de klasse, i.e., "Vriend_Demo":

vriend ongeldig vriendDemo_Func();

We hebben een object gemaakt, i.e., "fd" van de klasse "Friend_Demo" in de functie "friendDemo_Func()". Nu hebben we toegang tot de privé, beschermde en openbare leden van de klasse "Friend_Demo" met behulp van de puntoperator. We hebben respectievelijk 10, 15 en 20 toegewezen aan i_private, i_protected en i_public.

Zoals u in de onderstaande uitvoer kunt zien, is dit programma nu gecompileerd en uitgevoerd zonder fouten en drukt u de uitvoer af zoals verwacht.

#include
namespace std; gebruiken;
klasse Friend_Demo

privaat:
int i_private;
beschermd:
int i_protected;
openbaar:
int i_public;
vriend ongeldig vriendDemo_Func();
;
void vriendDemo_Func()

Friend_Demo fd;
fd.i_private = 10;
fd.i_beschermd = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int hoofd()

vriendDemo_Func();
retourneer 0;

Conclusie:

In dit artikel heb ik het concept van de vriendfunctie in C . uitgelegd++. Ik heb ook twee werkvoorbeelden laten zien om uit te leggen hoe de vriendfunctie zich gedraagt ​​in C++. Soms kan de vriendfunctie erg handig zijn in een complexe programmeeromgeving. Een programmeur moet echter voorzichtig zijn om het te veel te gebruiken en de OOP-functies in gevaar te brengen.

Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...