Citat:
fanfare: I interesuje me da li treba operatorsku f-iju () preklopiti u ovoj klasi ili u nekoj izvedenoj i na koji nacin?
Tekst zadatka je sročen tako da može da zbuni čoveka. Čista virtuelna funkcija
mora da bude implementirana u nekoj izvedenoj klasi (inače nije čista nego samo virtuelna). Međutim, ne samo što je dato objašnjenje šta funkcija/operator treba da radi (insinuirajući da to treba da se vidi u rešenju), nego je i jedini potreban podatak (vrsta figure) već dat u osnovnoj klasi (ponovo navodeći na zaključak da i kod koji koristi ovaj podatak treba da bude u osnovnoj klasi).
Način na koji bi preklopio operator je isti kao i za funkcije. U izvedenoj klasi bi imao isti operator kao i u osnovnoj, virtual char operator(), i imao bi i kod za taj operator, recimo nešto ovako:
Code:
char IzvedenaFigura::operator()
{
return vrsta_figure;
}
Možda možeš da primetiš jednu malu nelogičnost u svemu ovome. Ovaj kod će biti identičan za svaku izvedenu figuru (ako su izvedene figure Pešak, Top, Skakač...). Nema logike da istovetan kod postoji na više mesta, već taj kod treba da bude u osnovnoj klasi, ali zadatak je tako postavljen da se čovek uhvati za glavu.
Uzgred, ovo "= 0" nije dovoljno, potrebno je i ono "virtual": virtual char operator() = 0
Imaš zarez viška posle definicije figure.