Egzamin zawodowyPortal części pisemnej

INF.04 · pytanie 836

Klasa Figura ma metodę pole() zadeklarowaną bez słowa virtual, a klasa pochodna Kolo ją przedefiniowuje. Którą metodę wywoła wskaźnik typu Figura* pokazujący na obiekt Kolo?

  1. AŻadną - kompilator odrzuci taki zapis jako niejednoznaczne przeciążenie
  2. BMetodę z klasy Kolo, ponieważ o wyborze decyduje rzeczywisty typ obiektu
  3. CMetodę z klasy Figura, ponieważ bez metody wirtualnej wiązanie jest statycznePoprawna
  4. DObie metody kolejno: najpierw wersję z klasy bazowej, potem z pochodnej

Wyjaśnienie

O wyborze wersji metody bez modyfikatora wirtualnego decyduje typ wskaźnika znany na etapie kompilacji, a nie typ obiektu utworzonego w pamięci.