Witam.
Na uczelni miałem takie zadanie:
Napisać klasę SprzetRTV posiadającą funkcje:
- konstruktor pobierający nazwę urządzenia i zapamiętujący ją w klasie
- nazwa () - zwraca zapamiętaną nazwę urządzenia
- wlacz() i wylacz() - włączają i wyłączają urządzenie (odpowiednio)
- graj() - wyświetla na ekranie nazwę urządzenia (uzyskana za pomocą funkcji nazwa()) i tekst "gra", o ile sprzęt jest włączony.
Dodać klasę Radio dziedziczącą po klasie SprzetRTV. Klasa ta różni sie tym od klasy bazowej, że jej funkcja nazwa zwraca tekst "Radio" oraz nazwę urządzenia, na przykład, jeżeli do konstruktora przekazalibyśmy parametr "Grundig", funkcja nazwa() powinna zwrócić tekst "Radio Grundig".
Zrobiłem to w ten sposób : http://pastebin.com/3jfc10SC
Sprawdzający odrzucił to rozwiązanie wpisując uwagę: "czy funkcja nazwa musi być funkcja wirtualną zadeklarowaną w klasie bazowej?"
Dwa pytania do Was:
- Czy użycie w tym miejscu funkcji wirtualnej czemuś szkodzi ?
- Jak w inny sposób zrobić tak aby funkcja
graj()
wywołana z obiektu klasyRadio
zwróciła "Gra Radio Grudig" ?
Pozdrawiam