În acest articol vom vorbi despre următoarele:
- Care sunt funcțiile prietenoase și, cel mai important, de ce sunt necesare.
- Care este diferența dintre metodele uzuale de clasă și funcțiile prietenoase ale clasei.
- Cum să declarați și să definiți funcții prietenoase.
- Cum se apelează funcții prietenoase din funcția principal ().
Cea mai importantă, dar și cea mai probabilă, cea mai neînțeleasă pentru dvs. acum este definirea unei funcții prietenoase.
O funcție prietenoasă este o funcție care nu este membru al clasei, dar are acces la membrii clasei declarate în câmpurile private sau protejate.
Pentru o lungă perioadă de timp, nu vă îngropați în esența acestei definiții, ci mergeți mai degrabă la paragraful următor. Promit că după citirea articolului veți reveni la această definiție și veți fi vizitați de gândul: "Ei bine, da - așa este! Totul este clar aici! "
folosind namespace std;
nume = noul caracter [20];
cout <<". Деструктор. " < prieten void getData (Femeie25); >; // Definiția femeii25 a expirat void setData (char * n, int w, Femeie25 obiect) // defini set de prieteni functie prieten void getData (Woman25 obiect) // definește funcția prietenului getData cout < void Woman25 :: setData (char * n, int w) / / definește metoda setată a clasei void Woman25 :: getData () // definește metoda get-ului din clasă cout < void Woman25 :: sfătuiește () // definește metoda de clasă Sfat dacă (greutate <55)/если вес меньше 55 кг cout <<"Вам надо потреблять больше калорий!" < > altfel dacă (greutate> = 55 greutate <= 65)/если вес в пределах 55-65 кг cout <<"Ваш вес в норме!" < cout <<"Вам надо ограничивать себя в еде!" < Femeie25 normă; // crea obiectul Norm, constructorul va funcționa și greutatea va fi = 60, nume - Norm Norm.getData (); // apelează metoda de clasă Femeie25 Anna; // Al doilea obiect Anna.setData ("Anna", 100); // Apelați metoda de clasă Anna.getData (); // Apelați metoda de clasă Anna.advise (); // Apelați metoda de clasă Femeie25 Inna; // Al treilea obiect setData ("Inna", 50, Inna); // Apelați funcția prietenoasă getData (Inna); // Apelați funcția prietenoasă Inna.advise (); // Apelați metoda de clasă Acum începe, poate, cea mai interesantă - definiția în afara clasei funcțiilor noastre prietenoase și a metodelor uzuale ale clasei. Toate acestea sunt plasate în liniile 32-66. Vezi când definim funcții prietenoase. liniile 32-36 și 38-41 nu folosim operatorul. dublu colon (scopul metodei). Acest lucru ne spune deja că funcția prietenie nu aparține clasei, nu este componenta ei. Și când definiți alte metode, utilizați operatorul. este obligatorie. Metoda din clasa advice (). pe baza datelor privind greutatea obținute, oferă utilizatorului unul dintre sfaturile sau rapoartele conform cărora greutatea este normală. Mergeți la funcția principală - liniile 68 - 87. Aici vom crea un obiect de clasă Woman25 Norm; când este creat, constructorul va declanșa și inițializa elementele de nume și greutate. Se numește metoda de clasă Norm.getData (); pentru a afișa valoarea normală. Cu cel de-al doilea obiect creat Woman25 Anna; Lucrăm apelând setul obișnuit și obținem metode ale clasei, iar cu al treilea obiect Woman25 Inna; - cauzând funcții prietenoase. După cum puteți vedea, ele sunt numite funcții care nu aparțin clasei. Transmitem obiectul de clasă ca parametru. Rulați programul și vedeți următoarele: Destructor. Pentru a continua, apăsați orice tastă. Acum, ca întotdeauna, există o mică teorie, pentru fixarea materialului: Totul începe cu asta.
. Destructor.
. Destructor.
Articole similare