Rozdiel medzi funkciou Friend a triedou Friend

Autor: Laura McKinney
Dátum Stvorenia: 1 Apríl 2021
Dátum Aktualizácie: 13 Smieť 2024
Anonim
Psychiatrists from various countries talked to world’s 1st artificial consciousness Jackie | ALLATRA
Video: Psychiatrists from various countries talked to world’s 1st artificial consciousness Jackie | ALLATRA

Obsah


Funkcia Priateľ a trieda priateľov sú techniky používané na prístup k súkromným členom triedy pomocou kľúčového slova priateľa. Bežný rozdiel medzi funkciou priateľstva a triedou priateľov je ten, že keď sa používa funkcia priateľstva, je možné získať prístup k členom súkromnej triedy, ale v triede priateľov sú prístupné iba názvy triedy priateľ, nie súkromní členovia triedy.

funkcia priateľa či už je funkcia alebo trieda použitá, môže mať negatívny vplyv na objektovo orientovaný rámec, pretože oslabuje zapuzdrenie čo je proti objektovo orientovaný paradigma. Z tohto dôvodu sa musí funkcia priateľa používať rozumne, inak by mohla prestávka skrývanie údajov kódu.

Táto funkcia priateľa nie je komutatívne a ani tranzitívne, X je priateľ Y neznamená, že Y je tiež priateľom X. Ak X je priateľ Y a Y je priateľ Z, neznamená to, že X je priateľ Z.


    1. Porovnávacia tabuľka
    2. definícia
    3. Kľúčové rozdiely
    4. záver

Porovnávacia tabuľka

Základ pre porovnanieFunkcia priateľaTrieda priateľov
základnéJe to funkcia používaná s kľúčovým slovom priateľa na udelenie prístupu nečlenskej funkcie súkromným členom triedy.Je to trieda používaná s kľúčovým slovom priateľa na prístup k súkromným členom inej triedy.
Predbežné vyhlásenieMusí sa použiť.Nie je povinné.
použitieV niektorých prípadoch preťaženia operátora sa môže použiť funkcia priateľa.Triedu priateľov môžete použiť, keď je trieda vytvorená na vrchole inej triedy.


Definícia funkcie priateľa

funkcia priateľa sa používa na prístup k súkromným a chráneným členom triedy povolením funkcie nečlenom získať prístup. V tomto type funkcie sa kľúčové slovo priateľa používa pred názvom funkcie v čase deklarovania. Na funkciu priateľa sa vzťahujú niektoré obmedzujúce podmienky. Prvou podmienkou je, že funkcia priateľa nie je zdedená podriadenou triedou. Druhou podmienkou je, že špecifikátor triedy úložiska nemusí byť prítomný v priateľskej funkcii, čo znamená, že nemôže byť deklarovaný ako statický a externý.

Funkcia priateľ nie je vyvolaná vyvolávajúcim objektom triedy. Príklady priateľskej funkcie sú: globálna funkcia, členská funkcia triedy, funkčná šablóna môže byť priateľská funkcia. Pochopme to pomocou príkladu.

#include pomocou namespace std; first first {int data; public: first (int i): data (i) {} display void display (const first & a); }; void display (const first & a) {cout << "data =" <using namespace std; class first {// Vyhlásiť priateľa friend class class Second; public: First (): a (0) {} void () {cout << "Výsledkom je" << a << endl; } súkromné: int a; }; class Second {public: void change (First & yclass, int x) {yclass.a = x; }}; int main () Prvý obj1; Druhý obj2; obj1 (). obj2.change (obj1, 5); obj1 (). // Výstup Výsledok je 0 Výsledok je 5

  1. Funkcia priateľ je funkcia, ktorá je schopná získať prístup k súkromným a chráneným členom triedy. Naopak, priateľská trieda je trieda, ktorá pomáha pri prístupe k súkromným členom triedy.
  2. Funkcia priateľ je deklarovaná zahrnutím prototypu do triedy, doplnením o kľúčové slovo friend. Podobne je trieda priateľov definovaná aj pomocou kľúčového slova friend.
  3. Forwardové vyhlásenie sa používa v prípade, že funkcia priateľa je v protiklade, nie je potrebné ho používať v triede priateľov.

záver

Funkcia priateľstva sa vyžaduje, keď funkcia potrebuje prístup k dvom alebo viacerým nezávislým triedam, vnútorným členom. Na druhú stranu, trieda priateľov je potrebná, keď trieda vyžaduje prístup k členom inej triedy. Ak funkcia viacerých členov musí byť priateľom tejto funkcie, v takom prípade je lepšie použiť triedu priateľov.