- O funcție prietenoasă este o funcție care nu face parte din clasă și care are acces la toate elementele dintr-o clasă prietenoasă.
- O funcție prietenoasă este declarată în interiorul clasei cu modificatorul prietenului
Ar părea o definiție ușor de înțeles. A declarat o funcție în cadrul unei clase, a adăugat un modifier prieten și a folosit-o ca o funcție normală și independentă de clasă în afara clasei. Dacă sunteți interesat de acest subiect, atunci încercați să aplicați această teorie în practică. Cred că majoritatea covârșitoare a celor care au încercat se vor confrunta cu probleme.
Ca exemplu de învățare, voi cita codul C ++, care compară funcția de clasă obișnuită cu o funcție prietenoasă. Comparația se face numai prin modul în care codul este scris într-un caz și în celălalt. În același timp, puteți vedea perfect sintaxa pentru scrierea unei funcții prietenoase pentru o clasă
Codul C ++ Funcția prietenoasă și funcția obișnuită a clasei
int x; // Element privat din clasa A
prieten void get_x (int ); // Prototipul unei funcții prietenoase pentru intrarea în valori private x
void get_x (int); // Prototipul metodei uzuale pentru introducerea unei valori în privat x
void show (); // Funcția prototip pentru afișarea lui x dintr-un câmp privat
/ * Prototipurile funcțiilor sunt definite în interiorul clasei. Funcțiile în sine sunt descrise în afara * /
void get_x (int N.A. obj_A) // Funcția nu face parte din clasă, dar funcționează ca și cum ar fi
obj_A. x = N; // un element din clasa A este trecut la parametrul primit N
void A. get_x (int N) // funcția face parte din clasa A
x = N; // elementul privat x din clasa A este introdus în parametrul primit în N
void A. show () // Funcția face parte din clasa A și acționează ca intermediar
cout < O dată este posibil să se acorde atenție faptului că prototipul funcției prietenoase este descris în interiorul câmpului privat. De fapt, o puteți descrie și în alte domenii, dar este evidentă o diferență importantă față de metodele obișnuite ale clasei. Programul are două metode care sunt absolut identice în sensul și ambele realizează aceeași sarcină. O metodă este prietenoasă, a doua metodă este normală. Deci, metoda obișnuită din domeniul privat nu ar fi disponibilă și fără un intermediar, el nu ar ști ce vrea de la el, dar intermediarul nu este necesar pentru metoda prietenoasă. Aceasta este ceea ce spune o parte din teorie: Deoarece elementul x a fost declarat privat. pentru a afișa acest x, aveți nevoie de un intermediar, funcția show () funcționează ca intermediar. Funcția show () este declarată în interiorul clasei și înseamnă că toate câmpurile clasei sunt accesibile pentru ea. Sper că ați învățat ce este un domeniu privat și că o descriere suplimentară va fi superfluă Pe scurt: După ce se descrie clasa, se scriu funcții. A doua descrie o funcție care are un singur parametru. În acest caz, funcția se bazează pe clasa A și, prin urmare, intră în parametrul primit în interiorul clasei pe care se bazează. În general, ambele funcții îndeplinesc aceeași acțiune, diferența fiind că o funcție este efectuată ca independentă și independentă de clasă și este, de asemenea, descrisă în interiorul privat. În toate aceste împrejurări, aceasta nu o împiedică să lucreze în afara clasei fără intermediari Pentru a afișa privat x am folosit funcția de clasă obișnuită. Această funcție acționează ca un intermediar între program și clasă Rămâne numai ceea ce se află în interiorul funcției principale. De fapt, nu ar trebui să existe întrebări. Diferența de apeluri este vizibilă cu ochiul liber. Prima variantă a lucrării este aceeași cu a doua.
O funcție prietenoasă este o funcție care nu face parte din clasă și care are acces la toate elementele dintr-o clasă prietenoasă.
În interiorul clasei sunt declarate
Prima funcție scrisă care ia un anumit parametru N și ia o instanță a clasei, scrie N la x în interiorul instanței primite a clasei. Funcția nu se bazează pe clasă și este descrisă ca independent independentă. Poate că acest lucru este doar datorită prietenului cheie înainte de prototipul acestei funcții în interiorul clasei. Încă o dată, observ că această funcție poate fi descrisă în câmpul privat
A doua funcție se bazează pe o anumită clasă și nu poate funcționa cu elemente din domeniul privat fără intermediari
În general, am ajuns la faptul că
Articole similare