• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczytywanie danych i wykonywanie metod wszystkich "dzieci" danej klasy.

Object Storage Arubacloud
+1 głos
137 wizyt
pytanie zadane 17 października 2015 w C i C++ przez zmiennoimienny Mądrala (5,540 p.)

Witam smiley
Od jakiegoś czasu zacząłem swoją przygode z programowaniem obiektowym i natknąłem się na pewien problem.
 
Przykładowo:
Mam klase GameObject która posiada metode np. Rysuj() oraz zmienne x i y, każdy obiekt występujący na scenie będzie dziedziczył po wspomnianej klasie. 

I tu moje pytanie:
W jaki sposób sprawić, by w jednej funkcji np. AktualizujScene() wykonały się wszystkie metody we wszystkich obiektach które dziedziczną po GameObject?  Oraz w jaki sposób odczytać wartości zmiennych x i y w tych obiektach?

Jeżeli popełniłem jakieś podstawowe błędy i odpowiedź jest oczywista to proszę nie bić wink

Pozdrawiam

2 odpowiedzi

+1 głos
odpowiedź 17 października 2015 przez Boshi VIP (100,240 p.)
Primo, obiekty nie dziedziczą.

secundo w pętli odpalasz  metodę update dla tablicy obiektów typu GameObject.
+1 głos
odpowiedź 17 października 2015 przez Dash Nałogowiec (29,650 p.)
Nie do końca rozumiem pytanie, ale spróbujmy:

-Teoretycznie możesz pokombinować z funkcjami statycznymi. Jedna taka metoda odnosi się wtedy do wszystkich obiektów danej klasy, jest dla nich uniwersalna.

-Drugi sposób to polimorfizm, zamknięcie obiektów w wektorze albo talii i przeiterowanie wskaźnikiem wykonując jedną uniwersalną funkcję, która w każdej klasie może robić coś innego (wtedy najstarsza klasa musi być wirtualna).

-Inżynieria oprogramowania? Rozbicie tej giga klasy na moduły (jak np. w SFML) a następnie obsługa przygotowanym interfejsem?  Nie znam się na tym dobrze ale coś mi mówi że Fasada byłaby całkiem czystym rozwiązaniem. Tak samo Singleton mógłby być przydatny- tylko nie słyszałeś tego ode mnie, bo inni programiści mnie zatłuką :D

To na tyle co mi przyszło teraz do głowy. Jeżeli chcesz zgłębić głębiej któryś podpunkt, daj znać. Co do podstawowych błędów, to wsyzstkie klasy dziedziczące z jednej.... nie leży mi to. Czasami się tak robi (via Minecraft), ale nie powiedziałbym że to dobra metodyka.
komentarz 17 października 2015 przez Boshi VIP (100,240 p.)
Darujmy sobie singeltona i  statczne metody.  Jeżeli singelton to na prawdę musi to być przemyślane i być związane z architekturą całego systemu. Polimorfizm.
komentarz 17 października 2015 przez Dash Nałogowiec (29,650 p.)
Też z regułystawiam na polimorfizm, ale mam szczerą nadzieję że zaniteresuje świeżych programistów wzorcami programowania. Żałuję że nikt nie pokazał mi ich wcześniej, wiele by to uprościło :).

Podobne pytania

+3 głosów
6 odpowiedzi 523 wizyt
0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 16 marca 2017 w C# przez Magellan Nowicjusz (160 p.)
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 23 października 2019 w JavaScript przez Hasira Bywalec (2,100 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...