Rozdiel medzi funkciou Friend a triedou Friend
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.
-
- Porovnávacia tabuľka
- definícia
- Kľúčové rozdiely
- záver
Porovnávacia tabuľka
Základ pre porovnanie | Funkcia priateľa | Trieda 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ásenie | Musí sa použiť. | Nie je povinné. |
použitie | V 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 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.
záver