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

Jeżeli klasa pochodna dziedziczy po klasie nadrzędnej, to które zdanie dotyczące obiektów jest prawdziwe?

Opcje odpowiedzi:
A
Obiekty klas pochodnych mają ten sam rozmiar pamięci co obiekty klas nadrzędnych.
B
Do referencji wskazującej na obiekt klasy bazowej może być przypisany obiekt klasy pochodnej.
Prawidłowa
C
Obiekty klas pochodnych można przypisać do obiektów klasy nadrzędnej przez wartość, bez zastosowania referencji.
D
Obiekty klas pochodnych nie mogą zmienić typu na typ klasy nadrzędnej.
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź to B. Jest to istota polimorfizmu. Ponieważ klasa pochodna "jest" specyficznym przypadkiem klasy bazowej (relacja is-a), referencja typu ogólnego (bazowego) może bezpiecznie wskazywać na obiekt typu szczegółowego (pochodnego).

Wyjaśnienie pozostałych opcji:

  • A – Obiekty klasy pochodnej zazwyczaj zajmują więcej pamięci, ponieważ zawierają pola klasy bazowej plus swoje własne, dodatkowe pola.
  • C – Przypisanie przez wartość (tzw. slicing w C++) jest możliwe, ale powoduje utratę danych specyficznych dla klasy pochodnej, więc nie jest to pełnoprawne działanie na obiekcie pochodnym.
  • D – Jest to możliwe poprzez rzutowanie (casting).

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.