Przejdź do treści głównej
INF.04Pytanie #285 z 856dziedziczenie-i-polimorfizm

Mechanizm programowania obiektowego w C++, wykorzystujący funkcje wirtualne (z ang. Virtual), który przy wywołaniu metod zwalnia programistę z obowiązku sprawdzenia jaką klasę pochodną aktualnie obsługuje, np. przez wskaźnik nosi nazwę

Opcje odpowiedzi:
A
dziedziczenia
B
przeciążenia
C
hermetyzacji
D
polimorfizmu
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: D

Uzasadnienie i szersze wyjaśnienie:

Opisany w pytaniu mechanizm to polimorfizm (a konkretnie jego odmiana dynamiczna, realizowana w czasie wykonania). Dzięki użyciu słowa kluczowego virtual przy metodzie w klasie bazowej, kompilator wie, że decyzja o tym, która wersja metody ma zostać wywołana (czy ta z klasy bazowej, czy przesłonięta w klasie pochodnej), ma być podjęta w trakcie działania programu. Odbywa się to na podstawie rzeczywistego typu obiektu, na który wskazuje wskaźnik lub referencja, a nie na podstawie typu samego wskaźnika. Pozwala to na traktowanie obiektów różnych klas pochodnych w jednolity sposób (poprzez wskaźnik do klasy bazowej), a system sam dba o wywołanie odpowiedniej, specyficznej dla danego obiektu implementacji metody.

Dlaczego pozostałe odpowiedzi są nieprawidłowe?

  • A. dziedziczenia: Jest warunkiem koniecznym do wystąpienia polimorfizmu, ale nie jest samym mechanizmem dynamicznego wyboru metody.
  • B. przeciążenia (overloading): Dotyczy istnienia wielu funkcji o tej samej nazwie, ale różnych parametrach. Jest to polimorfizm statyczny, rozwiązywany w czasie kompilacji.
  • C. hermetyzacji: To zasada ukrywania wewnętrznych danych obiektu i udostępniania ich tylko przez publiczne metody.

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.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Dziedziczenie i polimorfizm”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 20 pytań z tego działu.