Źródło: Arkusze CKE
Jakiego typu funkcja jest tworzona poza klasą, ale ma dostęp do jej prywatnych i chronionych elementów?
Warianty odpowiedzi
-
A
Destruktor
-
B
Funkcja zaprzyjaźniona
-
C
Metoda statyczna
-
D
Konstruktor
Wyjaśnienie
Standardowo funkcja napisana poza klasą nie ma żadnego dostępu do jej prywatnych czy chronionych zasobów.
Jeśli jednak wewnątrz klasy dodasz deklarację z przedrostkiem friend, wskazujesz konkretną funkcję i dajesz jej dostęp do swoich ukrytych składników.
Takie rozwiązanie nazywamy funkcją zaprzyjaźnioną. Jest to mechanizm stosowany głównie w C++, gdy zewnętrzna funkcja musi ściśle współpracować z wnętrzem obiektu.