Źródło: Arkusze CKE
Które z poniższych zdań najlepiej określa funkcję zaprzyjaźnioną w ramach klasy?
Warianty odpowiedzi
-
A
Funkcja, która ma dostęp do prywatnych pól i metod klasy, z którą jest zaprzyjaźniona
-
B
Funkcja, która jest statyczna i nie ma możliwości modyfikacji pól klasy
-
C
Funkcja, która uruchamia się automatycznie po stworzeniu obiektu
-
D
Funkcja, która pozwala na dziedziczenie wielokrotne
Wyjaśnienie
Funkcja zaprzyjaźniona (znana głównie z języka C++) to funkcja zewnętrzna, która otrzymała specjalne pozwolenie na dostęp do prywatnych i chronionych składników klasy.
Mimo że sama nie jest metodą tej klasy i nie należy do jej struktury, w kodzie klasy umieszcza się deklarację z przedrostkiem friend. Daje jej to pełne prawa dostępu do zamkniętych danych.
Stosuje się to rozwiązanie w sytuacjach, gdy dwa odrębne elementy programu muszą ze sobą ściśle współpracować, np. przy przeciążaniu niektórych operatorów.