Hej!
Właśnie stawiam czoła kolejnemu problemowi i okazuje się, że znów potrzebuje Waszej pomocy.
Do rzeczy!
Najłatwiej będzie mi to opisać na klasie figury.
Otóż mam klasę abstrakcyjną figury, z niej dziedziczą klasy takie jak: koło, trójkąt, kwadrat, romb, gwiazda itd.
Mam też klasę klocki, w której zapisuje w tablicy wkaźniki na figury:
figury *mojeKlocki[40]; (mojeKlocki[0] = new trojkat;)
Mam już te 40 figur w jednej tablicy. Wiem, że na 100% zawsze elementy: 1, 4 i 7 to będą koła.
Koło w moich klockach ma mieć możliwość turlania się, jest to jakaś tam funkcja. Turlać się może tylko koło, nic innego. Żeby zrobić taką funkcję mam 2 możliwości:
1. Napisać funkcje wirtualną turlajSie w figurach, jednak będę musiał napisać ją także dla każdej klasy pochodnej tylko bez ciała, trochę bez sensu, jak będę chciał dodać figurę rownoleglobok to tam tez będę musiał zadeklarować tą funkcję...
2. Z racji tego, że wiem, że 1, 4 i 7 figura w moich klockach to koła, to napiszę tylko dla koła tą funkcję jako zwykłą składową. Jednak nie mogę odwołać się w ten sposób mojeKlocki[1]->turlajSie(), mimo, że wiem, że na 100% jest to koło.
Wyjście jest, stworzyć tablicę kół.
kolo* mojeKola[3]; jednak:
mojeKola[0]=mojeKlocki[1] nie działa, ponieważ kolo* nie może być figura*.
Jak rozwiązać ten problem. Wiem, że w tym konkretnym miejscu na 100% jest dana figura. Nie chcę pisać jednej funkcji x100 bo to do dupy robota.