Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 613

Które z poniższych zdań najlepiej określa funkcję zaprzyjaźnioną w ramach klasy?

  1. AFunkcja, która ma dostęp do prywatnych pól i metod klasy, z którą jest zaprzyjaźnionaPoprawna
  2. BFunkcja, która jest statyczna i nie ma możliwości modyfikacji pól klasy
  3. CFunkcja, która uruchamia się automatycznie po stworzeniu obiektu
  4. DFunkcja, która pozwala na dziedziczenie wielokrotne

Wyjaśnienie

Funkcja zaprzyjaźniona (ang. friend function) to funkcja, która ma dostęp do prywatnych i chronionych pól oraz metod klasy, mimo że nie jest jej częścią. Służy do realizacji operacji wymagających bezpośredniego dostępu do wewnętrznych elementów klasy, ale bez naruszania zasad hermetyzacji. Przykład w C++: `class Konto { private: double saldo; friend void wyswietlSaldo(Konto k); }`. Funkcja `wyswietlSaldo` może odczytać pole `saldo`, mimo że jest ono prywatne. Funkcje zaprzyjaźnione są używane, gdy konieczna jest bliska współpraca między klasami lub funkcjami, ale nie chcemy nadmiernie otwierać interfejsu klasy.