Rozdíl mezi funkcí přátel a třídou přátel
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.
-
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka
Základ pro srovnání | Funkce přítele | Tří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 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.
Závěr