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?
- AŻadną - kompilator odrzuci taki zapis jako niejednoznaczne przeciążenie
- BMetodę z klasy Kolo, ponieważ o wyborze decyduje rzeczywisty typ obiektu
- CMetodę z klasy Figura, ponieważ bez metody wirtualnej wiązanie jest statycznePoprawna
- 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.