Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Obiekt używany tylko raz w programie

Ostatnio zmodyfikowano 2018-04-22 12:36
Autor Wiadomość
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:
C/C++
struct PacMan
{
    int x; //x pacmana
    int y; //y pacmana
    int kierunek; //jego kierunek
}

...

int main()
{
    PacMan pacman; //<------------- i to jest jedno jedyne wywołanie.. czy jest jest coś może innego od struct co lepiej pasuje??
    ...
    return 0;
}

Pozdrawiam!
P-170770
pekfos
» 2018-04-21 20:00:45
stworzyć takiego structa co można użyć tylko raz w programie?
Jedno pytanie - po co?
P-170774
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).
P-170776
jankowalski25
» 2018-04-21 21:25:09
» Wzorce projektowe » Wzorce kreacyjnesingleton wzorzec projektowy
P-170777
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.
P-170779
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:
C/C++
struct
{
    int a;
    char b;
} PacMan;
Czy można powiedzieć że to jest to, czego potrzebuję?
P-170788
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.
P-170789
jankowalski25
» 2018-04-22 11:59:39
C/C++
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ś 232 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.
P-170790
« 1 » 2
  Strona 1 z 2 Następna strona