C pentru începători prietenos funcții prima cunoștință, c pentru începători

  • 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:






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ă.

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:
În interiorul clasei sunt declarate

  • Private x
  • Funcția de intrare prietenoasă în valorile x
  • Funcția obișnuită de intrare în valorile x
  • Funcție pentru afișarea elementului privat

După ce se descrie clasa, se scriu funcții.
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 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
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ă

  • Funcția de prieten poate fi declarată chiar și în interiorul privat și nu are nevoie de un intermediar.
  • O funcție de clasă obișnuită impune intermediarilor să lucreze cu elemente din privat

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.

  • În primul caz, o funcție normală ia parametrii și le procesează
  • În cel de-al doilea caz, procesăm clasa prin obiectul corespunzător

Prima variantă a lucrării este aceeași cu a doua.







Articole similare

Trimiteți-le prietenilor: