Diferența dintre funcția prietenului și clasa prietenului
Conţinut
Funcția prieten și clasa prieten sunt tehnicile utilizate pentru a accesa membrii privați ai unei clase folosind cuvântul cheie prieten. Diferența obișnuită între funcția de prieten și clasa de prieten este că atunci când se folosește funcția de prieten, membrii clasei private pot fi accesați, dar în clasa de prieten, se accesează doar numele clasei de prieten, nu membrii privați ai clasei.
caracteristică prieten indiferent dacă este folosit de funcție sau clasă poate produce un impact negativ asupra cadrului orientat obiect, deoarece acesta slăbește încapsulare care este împotriva orientate-obiect paradigmă. Acesta este motivul pentru care funcția de prieten trebuie folosită cu înțelepciune, altfel s-ar putea pauză ascunderea datelor a codului.
Această caracteristică de prieten nu este nici una comutabil și nici tranzitiv. X este un prieten al lui Y nu deduce că Y este și un prieten al lui X. Dacă X este un prieten al lui Y și Y este un prieten al lui Z, nu implică faptul că X este un prieten al lui Z.
-
- Diagramă de comparație
- Definiție
- Diferențele cheie
- Concluzie
Diagramă de comparație
Baza de comparație | Funcția de prieten | Clasa prietenului |
---|---|---|
De bază | Este o funcție utilizată cu un cuvânt cheie prieten pentru a acorda accesul unei funcții non-membre membrilor private ai unei clase. | Este o clasă folosită cu un cuvânt cheie prieten pentru a accesa membrii privați ai altei clase. |
Declarație înainte | Trebuie sa fie folosit. | Nu este obligatoriu. |
Utilizare | O funcție de prieten poate fi utilizată în anumite situații de supraîncărcare a operatorului. | O clasă prietenă poate fi utilizată atunci când o clasă este creată în partea de sus a altei clase. |
Definiția Friend Function
funcția de prieten este folosit pentru a accesa membrii privați și protejați ai unei clase, permițând funcției non-membre să obțină acces. În acest tip de funcții, se folosește un cuvânt cheie prieten înainte de numele funcției la momentul declarației. Există câteva condiții restrictive aplicate funcției de prieten. Prima condiție este ca funcția de prieten să nu fie moștenită de o clasă de copii. A doua condiție este ca specificatorul clasei de stocare să nu fie prezent în funcția de prieten, ceea ce înseamnă că nu poate fi declarat ca static și extern.
Funcția de prieten nu este apelată cu un obiect invocat al clasei. Exemplele funcției de prieten sunt: o funcție globală, funcția de membru a unei clase, șablonul funcției poate fi o funcție de prieten. Să o înțelegem cu ajutorul unui exemplu.
#include O funcție prietenă este necesară atunci când o funcție trebuie să acceseze două sau mai multe clase independente, membri interni. Pe de altă parte, este nevoie de o clasă prietenă atunci când o clasă necesită accesarea membrilor unei alte clase. Când o funcție de membru multiplu trebuie să fie un prieten al acestei funcții, în acest caz, este mai bine să utilizați clasa prieten.
Concluzie