Rozdíl mezi funkcí přátel a třídou přátel

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 1 Smět 2024
Anonim
Rozdíl mezi funkcí přátel a třídou přátel - Technologie
Rozdíl mezi funkcí přátel a třídou přátel - Technologie

Obsah


Funkce Friend a třída přátel jsou techniky používané pro přístup k soukromým členům třídy pomocí klíčového slova přítele. Společný rozdíl mezi funkcí přítele a třídou přátel je v tom, že pokud je použita funkce přátel, lze přistupovat k členům soukromé třídy, ale ve třídě přátel jsou přístupná pouze jména třídy přátel, nikoli soukromí členové třídy.

funkce přítele zda použití funkce nebo třídy může mít negativní dopad na objektově orientovaný rámec, protože to oslabuje zapouzdření což je proti objektově orientovaný paradigma. Z tohoto důvodu musí být funkce přítele použita rozumně, jinak by mohla přestávka skrývání dat kódu.

Tato funkce přítele není komutativní a ani tranzitivní. X je přítel Y neznamená, že Y je také přítel X. Pokud X je přítel Y a Y je přítel Z, neznamená to, že X je přítel Z.


    1. Srovnávací tabulka
    2. Definice
    3. Klíčové rozdíly
    4. Závěr

Srovnávací tabulka

Základ pro srovnáníFunkce příteleTřída přátel
ZákladníJe to funkce používaná s klíčovým slovem přítele k udělení přístupu nečlenské funkce soukromým členům třídy.Jedná se o třídu používanou s klíčovým slovem přítele pro přístup k soukromým členům jiné třídy.
Přední prohlášeníMusí být použito.Nepovinné.
PoužitíFunkci přítele lze použít v některých situacích při přetížení obsluhy.Třídu přátel lze použít, když je třída vytvořena na vrcholu jiné třídy.


Definice funkce přítele

funkce přítele se používá pro přístup k soukromým a chráněným členům třídy povolením funkce nečlenům získat přístup. V tomto typu funkce je klíčové slovo přítele použito před názvem funkce v době deklarace. Na funkci přítele se vztahují určité omezující podmínky. První podmínkou je, že funkce přátel není zděděna podřízenou třídou. Druhou podmínkou je, že specifikátor třídy úložiště nemusí být přítomen ve funkci přítele, což znamená, že nemůže být deklarováno jako statické a externí.

Funkce přátel není vyvolána s vyvolávajícím objektem třídy. Příklady funkce přátel jsou: globální funkce, členská funkce třídy, funkční šablona může být funkce přátel. Rozumíme tomu pomocí příkladu.

#zahrnout pomocí oboru názvů std; první třída {int data; public: first (int i): data (i) {} display void display (const first & a); }; void display (const first & a) {cout << "data =" <using namespace std; třída First {// Vyhlásit přítele třídy friend class Second; public: First (): a (0) {} void () {cout << "Výsledkem je" << a << endl; } soukromé: int a; }; class Second {public: void change (First & yclass, int x) {yclass.a = x; }}; int main () První obj1; Druhý obj2; obj1. (); obj2.change (obj1, 5); obj1. (); // Výstup Výsledek je 0 Výsledek je 5

  1. Funkce přátel je funkce, která je schopna přistupovat k soukromým a chráněným členům třídy. Naproti tomu třída přátel je třída, která pomáhá při přístupu k soukromým členům třídy.
  2. Funkce přátel je deklarována zahrnutím jejího prototypu do třídy, antecede s klíčovým slovem friend. Podobně je třída přátel definována také pomocí přítele klíčových slov.
  3. Přední prohlášení se používá v případě funkce přítele proti, není nutné jej používat ve třídě přátel.

Závěr

Funkce přátel je vyžadována, pokud funkce potřebuje přístup ke dvěma nebo více nezávislým třídám, interním členům. Na druhou stranu je třída přátel nutná, pokud třída vyžaduje přístup ke členům jiné třídy. Pokud musí být funkce vícečlenů přítelem této funkce, je lepší použít třídu přátel.