Obiekt używany tylko raz w programie
Ostatnio zmodyfikowano 2018-04-22 12:36
Marcin4113 Temat założony przez niniejszego użytkownika |
Obiekt używany tylko raz w programie » 2018-04-21 18:26:39 Witam, Mam pytanie otóż przy używaniu struct możemy tworzyć obiekty w dowolnej ilości (dowolną ilość razy tworzyć). A czy jest taka możliwość aby stworzyć takiego structa co można użyć tylko raz w programie? Np. tworząc Pac-Mana (przykład z miejsca gdzie światło nie dochodzi) tworzymy raz główną postać, a ładnie by wyglądało jakby wszystkie dane apropo postaci mieć w jednym miejscu.. Podam przykład o co mi biega: struct PacMan { int x; int y; int kierunek; }
...
int main() { PacMan pacman; ... return 0; }
Pozdrawiam! |
|
pekfos |
» 2018-04-21 20:00:45 stworzyć takiego structa co można użyć tylko raz w programie? |
Jedno pytanie - po co? |
|
Marcin4113 Temat założony przez niniejszego użytkownika |
» 2018-04-21 21:22:29 No to wyjaśniłem, jak jest obiekt który potrzebny jest raz tylko w programie (tutaj np. ten PacMan). |
|
jankowalski25 |
» 2018-04-21 21:25:09 |
|
pekfos |
» 2018-04-21 22:19:28 Jak jest potrzebny raz, to użyj raz. Nie ma obowiązku używać go wielokrotnie. Jak razi cię tylko to, że struktura jest widoczna i IDE ją podpowiada, to możesz ją zdefiniować lokalnie, lub nawet bez nazwy (patrz: struktura anonimowa). Ale po co? Jak już zgrupowałeś dane w strukturze, to czemu by jej nie użyć do stworzenia jakichś funkcji pomocniczych, czy czegoś.
jankowalski25: Na singleton trzeba mieć sensowny powód, tutaj go nie ma. |
|
Marcin4113 Temat założony przez niniejszego użytkownika |
» 2018-04-22 10:07:44 Po prostu ciekawiło mnie to zagadnienie, bo wydawało mi się że trochę marnuje się tutaj potencjał structa, ale jak nie ma innej opcji to będę używać tego. Nie przeszkadza mi w IDE jak się pokazuje czy coś ;) Dziękuję za pomoc i wyjaśnienie! Edit: Poradziłem sobie tak: struct { int a; char b; } PacMan;
Czy można powiedzieć że to jest to, czego potrzebuję? |
|
pekfos |
» 2018-04-22 11:14:24 Czy można powiedzieć że to jest to, czego potrzebuję? |
Jeśli można powiedzieć, że czegoś tu potrzebujesz. |
|
jankowalski25 |
» 2018-04-22 11:59:39 struct { int a; char b; } PacMan; |
Jeśli to zmienna globalna, to już lepiej umieścić tą jedną linijkę w mainie. marnuje się tutaj potencjał structa |
Nie marnuje się. To samo można powiedzieć o zwykłym incie, który może przechowywać (zależnie od rozmiaru) jakieś 2 32 liczb, ale z jakiegoś powodu będzie używany do losowania liczb z przedziału od 0 do 99. Czy wtedy marnuje się potencjał tej zmiennej? Otóż nie, bo do tego i tak pewnie dojdzie jakieś wyrównanie i przydzielenie jednego bajta nie musi być lepszym pomysłem (zwłaszcza jeśli później chcemy to wypisać i dołożymy rzutowanie na inta). Na optymalizacje przyjdzie jeszcze czas, na razie skup się na samym problemie. |
|
« 1 » 2 |