Diferència entre la funció d’amic i la classe d’amic

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 13 Ser Possible 2024
Anonim
Diferència entre la funció d’amic i la classe d’amic - Tecnologia
Diferència entre la funció d’amic i la classe d’amic - Tecnologia

Content


La funció d’amic i la classe d’amic són les tècniques que s’utilitzen per accedir als membres privats d’una classe mitjançant la paraula clau d’amic. La diferència comuna entre la funció amiga i la classe amiga és que quan s’utilitza la funció d’amic es pot accedir als membres de la classe privada, però a la classe d’amics, només s’accedeix als noms de la classe amiga i no als membres privats de la classe.

El funció d'amic tant si s'utilitza per funció com per classe, pot produir un impacte negatiu en el marc orientat a l'objecte, ja que es debilita encapsulació que està en contra de orientat a objectes paradigma. Aquesta és la raó per la qual s'ha d'utilitzar de forma sàvia la característica amiga, altrament no ho podria ser trencar el amagada de dades del codi.

Aquesta funció amiga tampoc és commutativa i tampoc transitiva. X és amic de Y no dedueix que Y també és amic de X. Si X és amic de Y i Y és amic de Z, no implica que X sigui amic de Z.


    1. Gràfic de comparació
    2. Definició
    3. Diferències claus
    4. Conclusió

Gràfic de comparació

Bases per a la comparacióFunció AmicClasse Amic
BàsicÉs una funció usada amb una paraula clau d’amic per concedir a una funció que no és membre els membres privats d’una classe.És una classe utilitzada amb una paraula clau d’amic per accedir als membres privats d’una altra classe.
Declaració endavantS'ha de fer servir.No és obligatori.
UtilitzeuUna funció amiga es pot utilitzar en algunes situacions de sobrecàrrega de l’operador.Es pot utilitzar una classe d’amic quan es crea una classe a la part superior d’una altra classe.


Definició de Funció Amiga

El funció d’amic s'utilitza per accedir als membres privats i protegits d'una classe, permetent que la funció que no sigui membre tingui accés. En aquest tipus de funcions, s'utilitza una paraula clau amiga abans del nom de la funció en el moment de la declaració. Hi ha algunes condicions restrictives aplicades a la funció d’amic. La primera condició és que la funció d’amic no sigui heretada per una classe infantil. La segona condició és que el especificador de la classe d’emmagatzematge pot no estar present a la funció d’amic, cosa que significa que no es pot declarar estàtic i extern.

La funció amiga no es diu amb un objecte invocant de la classe. Els exemples de funció d’amic són: una funció global, la funció de membre d’una classe, la plantilla de funcions pot ser una funció d’amic. Ho entenem amb l'ajuda d'un exemple.

#incloure ús de l’espai de noms std; classe primera {int dades; public: first (int i): data (i) {} friend void display (const first & a); }; void display (const first & a) {cout << "data =" <mitjançant espai de noms std; class First {// Declarar un amic classe amic classe segon; public: First (): a (0) {} void () {cout << "El resultat és" << a << endl; } privat: int a; }; class Second {public: void change (First & yclass, int x) {yclass.a = x; }}; int main () Primer object1; Segon object2; obj1. (); obj2.change (obj1, 5); obj1. (); // Resultat El resultat és 0 El resultat és 5

  1. La funció Friend és una funció que pot accedir als membres privats i protegits d'una classe. En canvi, una classe amiga és una classe que ajuda a accedir als membres privats d’una classe.
  2. Es declara una funció amiga incloent el seu prototip dins de la classe, antecedent-lo amb la paraula clau friend. De la mateixa manera, una classe amiga també es defineix mitjançant la paraula clau amic.
  3. La declaració reenvia s’utilitza en cas de funció d’amic en contra, i no cal utilitzar-la a classe d’amics.

Conclusió

És necessària una funció amiga quan una funció necessita accedir a dues o més classes independents, membres interns. D’altra banda, es necessita una classe d’amics quan una classe requereix accedir als membres d’una altra classe. Quan una funció de diversos membres ha de ser amiga d’aquesta funció, en aquest cas, és millor utilitzar la classe d’amics.