Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
In general membrii privati ai unei clase nu pot fi accesati din afara clasei in care au fost declarati. Aceasa regula are o exceptie. O clasa poate declara o lista de functii externe drept prietene ale clasei, folosind cuvantul cheie friend Aceste functii prietene vor avea acces la membrii privati ai clasei. Pentru a declara o functie prietena, vom folosi urmatoarea sintaxa in corpul clasei
friend <prototipul functei prietene>; |
Exemplu
// functie prietena #include<iostream> #include<conio.h> using namespace std; class Dreptunghi //declaratie functie prietena friend Dreptunghi dublu(Dreptunghi); void Dreptunghi::setValori(int a, int b) Dreptunghi dublu(Dreptunghi drParam) int main () |
Functia dublu este prietena a clasei Dreptunghi Din corpul ei avem dreptul sa accesam membrii privati lungime si latime a diferitor obiecte de tip Dreptunghi. Remarcam ca functia dublu nu este membru a clasei Dreptunghi. Este o functie globala. Dar are acces la membrii privati ai lui Dreptunghi
Functiile prietene sunt utile uneori, pentru a efectua operatii cu doua clase diferite. Atunci cand este nevoie ca functia sa aiba acces la membrii privati ai ambelor clase. In acest caz functia poate fi declarata globala, dar prietena cu ambele clase. Conceptul de prietenie nu face parte din programarea orientata obiect. In general, functiile prietene trebuie evitate si inlocuite cu functii membre a claselor. In exemplul precedent, ar fi fost mai simplu sa declaram functia dublu membra a clasei Dreptunghi
Politica de confidentialitate |
Copyright © 2024 - Toate drepturile rezervate