Które zdanie jest zgodne z informacjami o funkcjach zaprzyjaźnionych przedstawionych we fragmencie dokumentacji?
Które zdanie jest zgodne z informacjami o funkcjach zaprzyjaźnionych przedstawionych we fragmencie dokumentacji?
Wyjaśnienie i uzasadnienie dydaktyczne
Poprawna odpowiedź: D
Uzasadnienie i szersze wyjaśnienie:
Analizując przedstawiony fragment dokumentacji, możemy wyciągnąć następujące wnioski:
- Odpowiedź D: Dokumentacja stwierdza: „A friend function of a class is defined outside that class' scope but it has the right to access all private and protected members of the class.” (Funkcja zaprzyjaźniona klasy jest zdefiniowana poza zasięgiem tej klasy, ale ma prawo dostępu do wszystkich prywatnych i chronionych składowych klasy). To zdanie jest w pełni zgodne z treścią w opcji D. (Uwaga: Tytuł w ramce „Friend in C#” jest mylący, ponieważ mechanizm
friendjest charakterystyczny dla języka C++, a nie C#).
Dlaczego pozostałe odpowiedzi są nieprawidłowe?
- A: Dokumentacja mówi wprost: „friends are not member functions” (przyjaciele nie są funkcjami składowymi/metodami).
- B: Jest to zaprzeczenie zacytowanego wyżej fragmentu. Funkcja zaprzyjaźniona ma dostęp zarówno do składowych
private, jak iprotected. - C: Drugi akapit dokumentacji wyraźnie wymienia, że przyjacielem może być: funkcja, szablon funkcji, metoda innej klasy, cała klasa lub szablon klasy („A friend can be a function, function template, or member function, or a class or class template...”).
Chcesz poćwiczyć całą kwalifikację INF.04?
Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.
Pojęcia z tego pytania
- Szablony w C++ i Typy Generyczne (Generics)Mechanizm parametryzacji typem w C++, C# i Javie, zapewniający bezpieczeństwo typów w czasie kompilacji oraz eliminujący kosztowne rzutowanie i boxing/unboxing.
- Język programowania C++Wieloparadygmatowy, kompilowany bezpośrednio do kodu maszynowego język programowania ogólnego przeznaczenia, oferujący bezpośrednie zarządzanie pamięcią i najwyższą wydajność.
- Modyfikatory dostępu (Access Modifiers)Słowa kluczowe definiujące widoczność i zakres dostępności składowych klasy (pól, metod, właściwości).
Podobne pytania z działu „Enkapsulacja i modyfikatory dostepu”
Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 8 pytań z tego działu.
- #99
W metodach klasy GoldCustomer są widoczne jedynie pola
- #125
Modyfikator dostępu poprzedzający definicję metody Dodaj() zdefiniowanej w klasie Kalkulator powoduje, że:
- #139
Założenie programowania obiektowego polegające na ukrywaniu składowych klasy tak, aby były one dostępne tylko metodom tej klasy lub funkcjom zaprzyjaźnionym, to
- #212
Jaki kwalifikator należy nadać metodzie, aby dostęp do niej był możliwy tylko z ciała tej klasy i klas potomnych, a jednocześnie, żeby ta metoda nie była dostępna w dowolnej funkcji?
- #538
W klasie zdefiniowano pole, do którego dalej w programie odwoływano się za pomocą nazwy klasy, bez tworzenia obiektu. Oznacza to, że pole musiało być zdefiniowane ze słowem kluczowym