Funkcja przyjaciela C ++

Funkcja przyjaciela C ++
Funkcja to blok kodu, który wykonuje określone zadanie i zapewnia wyjście. Służy głównie do wyeliminowania powtarzalnego kodu. W tym samouczku przyjrzymy się funkcji znajomego w C ++ i wyjaśnimy jej koncepcję za pomocą przykładów działających.

Co to jest funkcja przyjaciela?

Funkcja Friend to funkcja bez członków, która może uzyskać dostęp do prywatnych i chronionych członków klasy. „Przyjaciel” to słowo kluczowe używane do wskazania, że ​​funkcja jest przyjacielem klasy. To pozwala kompilatorowi wiedzieć, że konkretna funkcja jest przyjacielem danej klasy. Funkcja przyjaciela powinna wówczas mieć dostęp do prywatnego i chronionego członka danej klasy. Bez słowa kluczowego przyjaciela, funkcja zewnętrzna bez członków może uzyskać dostęp tylko do publicznych członków klasy.

Kluczowe funkcje funkcji przyjaciela:

Oto kluczowe funkcje funkcji przyjaciela:

  1. Funkcja przyjaciela nie jest w zakresie klasy.
  2. Funkcji przyjaciela nie można wywołać za pomocą instancji klasy.
  3. Może uzyskać dostęp do członków za pomocą operatora obiektu i kropki.

Składnia funkcji przyjaciela:

Oto składnia funkcji przyjaciela:

klasa_nazwa_demo



Friend return_type funkcja_name (arg_1, arg_2,…);
;

Przykład funkcji przyjaciela:

Teraz przyjrzyjmy się przykładowi programu, aby zrozumieć pojęcie funkcji przyjaciela w C++. W poniższym programie mamy klasę „friend_demo”. Ma trzy różne typy członków danych, i.mi., prywatne, chronione i publiczne.

Zdefiniowaliśmy inną funkcję, i.mi., „FriendDemo_func ()” poza zakresem klasy „Friend_demo” i próbowałem uzyskać dostęp do członków (prywatnych, chronionych i publicznych) klasy „Friend_demo”.

Ale, jak widać na poniższym wyjściu, gdy kompilujemy program, rzuca błędy kompilacji. Funkcja przyjaciela dokładnie rozwiąże ten problem.

#włączać
za pomocą przestrzeni nazw Std;
klasa Friend_Demo

prywatny:
int i_private;
chroniony:
int i_protected;
publiczny:
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 ();
powrót 0;

W poprzednim programie otrzymywaliśmy błędy kompilacji, próbując uzyskać dostęp do prywatnych, chronionych i publicznych członków klasy z funkcji innych niż członek. Wynika to z faktu, że funkcja bez członków nie może uzyskać dostępu do prywatnych i chronionych członków klasy spoza zakresu klasy.

Teraz, w tym przykładzie, zadeklarowaliśmy funkcję „friendDemo_Func ()” jako przyjaciel w zakresie klasy, i.mi., „Friend_demo”:

przyjaciel void frienddemo_func ();

Stworzyliśmy obiekt, i.mi., „FD” klasy „Friend_demo” w funkcji „FriendDemo_Func ()”. Teraz możemy uzyskać dostęp do prywatnych, chronionych i publicznych członków klasy „Friend_demo” za pomocą operatora DOT. Przypisaliśmy odpowiednio 10, 15 i 20 do I_Private, I_Protected i I_Public.

Jak widać na poniższym wyjściu, ten program jest teraz kompilowany i wykonywany bez żadnych błędów i wydrukuj dane wyjściowe zgodnie z oczekiwaniami.

#włączać
za pomocą przestrzeni nazw Std;
klasa Friend_Demo

prywatny:
int i_private;
chroniony:
int i_protected;
publiczny:
int i_public;
przyjaciel 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 ();
powrót 0;

Wniosek:

W tym artykule wyjaśniłem koncepcję funkcji przyjaciela w C++. Pokazałem również dwa przykłady działające, aby wyjaśnić, w jaki sposób funkcja przyjaciela zachowuje się w C++. Czasami funkcja przyjaciela może być bardzo przydatna w złożonym środowisku programowania. Jednak programista powinien zachować ostrożność w zakresie nadużycia i narażania funkcji OOP.