Co je funkce přítele?
Funkce Friend je nečlenská funkce, která má přístup k soukromým a chráněným členům třídy. „Přítel“ je klíčové slovo používané k označení, že funkce je přítelem třídy. To umožňuje kompilátoru vědět, že konkrétní funkce je přítelem dané třídy. Funkce friend by pak měla mít přístup k soukromému a chráněnému členovi dané třídy. Bez klíčového slova friend má nečlenská vnější funkce přístup pouze k veřejným členům třídy.
Klíčové vlastnosti funkce Friend:
Zde jsou klíčové vlastnosti funkce přítele:
- Funkce přátel není v rozsahu třídy.
- Funkci friend nelze vyvolat pomocí instance třídy.
- Může přistupovat ke členům pomocí operátoru objektu a tečky.
Syntaxe funkce Friend:
Zde je syntaxe funkce friend:
třída Class_Name_Demo…
…
přítel return_Type function_Name (arg_1, arg_2, ...);
;
Příklad funkce přítele:
Nyní se podívejme na ukázkový program, abychom porozuměli pojmu funkce přítele v C++. V níže uvedeném ukázkovém programu máme třídu „Friend_Demo“. Má tři různé typy datových členů, tj.E., soukromé, chráněné a veřejné.
Definovali jsme další funkci, tj.E., „FriendDemo_Func ()“ mimo rozsah třídy „Friend_Demo“ a pokusil se získat přístup k členům (soukromé, chráněné a veřejné) třídy „Friend_Demo“.
Ale jak vidíte na výstupu níže, když kompilujeme program, hodí chyby kompilace. Funkce Friend tento problém přesně vyřeší.
#zahrnoutpomocí jmenného prostoru std;
třída Friend_Demo
soukromé:
int i_private;
chráněný:
int i_protected;
veřejnost:
int i_public;
;
void friendDemo_Func ()
Friend_Demo fd;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main ()
friendDemo_Func ();
návrat 0;
V předchozím programu se nám při pokusu o přístup k soukromým, chráněným a veřejným členům třídy z nečlenské funkce zobrazovaly chyby kompilace. Důvodem je, že nečlenská funkce nemá povolen přístup k soukromým a chráněným členům třídy mimo rozsah třídy.
V tomto příkladu jsme nyní deklarovali funkci „friendDemo_Func ()“ jako přítele v rámci třídy, i.E., „Friend_Demo“:
friend void friendDemo_Func ();Vytvořili jsme objekt, tj.E., „Fd“ třídy „Friend_Demo“ uvnitř funkce „friendDemo_Func ()“. Nyní můžeme přistupovat k soukromým, chráněným a veřejným členům třídy „Friend_Demo“ pomocí operátoru tečka. Přiřadili jsme 10, 15 a 20 k i_private, i_protected a i_public.
Jak vidíte na výstupu níže, tento program je nyní kompilován a spuštěn bez jakýchkoli chyb a tiskne výstup podle očekávání.
#zahrnoutpomocí jmenného prostoru std;
třída Friend_Demo
soukromé:
int i_private;
chráněný:
int i_protected;
veřejnost:
int i_public;
friend void friendDemo_Func ();
;
void friendDemo_Func ()
Friend_Demo fd;
fd.i_private = 10;
fd.i_protected = 15;
fd.i_public = 20;
cout << fd.i_private << endl;
cout << fd.i_protected << endl;
cout << fd.i_public << endl;
int main ()
friendDemo_Func ();
návrat 0;
Závěr:
V tomto článku jsem vysvětlil koncept funkce přítele v jazyce C++. Také jsem ukázal dva pracovní příklady, abych vysvětlil, jak se funkce friend chová v C++. Funkce přátel může být někdy velmi užitečná v komplexním programovacím prostředí. Programátor by však měl být opatrný, pokud jde o jeho nadužívání a kompromitování jeho funkcí OOP.