C ++

C ++ sõbra funktsioon

C ++ sõbra funktsioon
Funktsioon on koodiplokk, mis täidab teatud ülesannet ja annab väljundi. Seda kasutatakse peamiselt korduva koodi kõrvaldamiseks. Selles õpetuses uurime sõbra funktsiooni C ++ -s ja selgitame selle kontseptsiooni töötavate näidetega.

Mis on sõbra funktsioon?

Sõbrafunktsioon on mitte-liikme funktsioon, mis pääseb juurde klassi privaatsetele ja kaitstud liikmetele. “Sõber” on märksõna, mis näitab, et funktsioon on klassi sõber. See võimaldab kompilaatoril teada saada, et konkreetne funktsioon on antud klassi sõber. Sõbrafunktsioon peaks siis saama pääseda antud klassi privaatsele ja kaitstud liikmele. Ilma sõbra märksõnata pääseb mitteliikmeväline funktsioon juurde ainult klassi avalikele liikmetele.

Sõbra funktsiooni põhijooned:

Siin on sõbrafunktsiooni põhijooned:

  1. Sõbrafunktsioon ei kuulu klassi reguleerimisalasse.
  2. Sõbrafunktsiooni ei saa kutsuda klassi eksemplari abil.
  3. See pääseb liikmetele juurde objekti ja punkti operaatori abil.

Sõbra funktsiooni süntaks:

Siin on sõbrafunktsiooni süntaks:

klass Klass_nimi_Demo



sõbra return_Type function_Name (arg_1, arg_2,…);
;

Sõbra funktsiooni näide:

Nüüd uurime näites programmi, et mõista sõbrafunktsiooni mõistet C-s++. Allolevas näidisprogrammis on meil klass „Friend_Demo”. Sellel on kolme erinevat tüüpi andmeliikmeid, s.t.e., privaatne, kaitstud ja avalik.

Oleme määranud veel ühe funktsiooni, st.e., „FriendDemo_Func ()” jääb klassi „Friend_Demo” reguleerimisalast välja ja proovis pääseda juurde klassi „Friend_Demo” liikmetele (privaatsetele, kaitstud ja avalikele).

Kuid nagu näeme programmi koostamisel allpool olevast väljundist, viskab see kompileerimisvigu. Sõbra funktsioon lahendab selle probleemi täpselt.

# kaasata
nimeruumi kasutamine std;
klass Sõber_Demo

privaatne:
int i_privaatne;
kaitstud:
int kaitstud;
avalik:
int i_public;
;
void friendDemo_Func ()

Sõber_Demo fd;
fd.i_privaatne = 10;
fd.i-kaitstud = 15;
fd.i_publik = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

sõberDemo_Func ();
tagastama 0;

Eelmises programmis leidsime kompileerimisvigu, kui proovisime juurdepääsu klassi privaatsetele, kaitstud ja avalikele liikmetele funktsioonist. Seda seetõttu, et mitteliikmelisel funktsioonil ei ole lubatud klassi privaatsetele ja kaitstud liikmetele juurde pääseda väljaspool klassi reguleerimisala.

Nüüd oleme selles näites deklareerinud funktsiooni “friendDemo_Func ()” sõbrana klassi piires, st.e., “Friend_Demo”:

sõber void friendDemo_Func ();

Oleme loonud objekti, s.t.e., Funktsiooni „friendDemo_Func ()” sees on klassi „Friend_Demo” „fd”. Nüüd pääseme punktioperaatori abil klassi „Friend_Demo” privaatsetele, kaitstud ja avalikele liikmetele. Oleme määranud vastavalt i_private, i_protected ja i_public 10, 15 ja 20.

Nagu näete allpool olevast väljundist, on see programm nüüd kompileeritud ja käivitatud ilma tõrgeteta ning printib väljund ootuspäraselt.

# kaasata
nimeruumi kasutamine std;
klass Sõber_Demo

privaatne:
int i_privaatne;
kaitstud:
int kaitstud;
avalik:
int i_public;
sõber void friendDemo_Func ();
;
void friendDemo_Func ()

Sõber_Demo fd;
fd.i_privaatne = 10;
fd.i-kaitstud = 15;
fd.i_publik = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;

int main ()

sõberDemo_Func ();
tagastama 0;

Järeldus:

Selles artiklis olen selgitanud sõbrafunktsiooni mõistet C-s++. Olen näidanud ka kahte toimivat näidet, et selgitada, kuidas sõbrafunktsioon C-s käitub++. Mõnikord võib sõbrafunktsioon olla keerukas programmeerimiskeskkonnas väga kasulik. Programmeerija peaks siiski olema ettevaatlik selle ülekasutamise ja OOP-funktsioonide kahjustamise suhtes.

Kuidas kuvada OSD ülekatet täisekraanil Linuxi rakendustes ja mängudes
Täisekraaniga mängude mängimine või rakenduste kasutamine häireteta täisekraanirežiimis võib teid paneelil või tegumiribal kuvatavast asjakohasest süs...
Viis parimat mängu püüdmise kaarti
Me kõik oleme YouTube'is voogesituse mänge näinud ja armastanud. PewDiePie, Jakesepticye ja Markiplier on vaid mõned tipptasemel mängijatest, kes on t...
Kuidas mängu Linuxis arendada
Kümme aastat tagasi ei osanud paljud Linuxi kasutajad ennustada, et nende lemmikoperatsioonisüsteem on ühel päeval populaarne kommertsvideomängude män...