hardtmuth Temat założony przez niniejszego użytkownika |
[C++][Qt4] Zebranie wskaźników na obiekty w tablice lub cos podobnego » 2011-02-17 18:17:33 Hej,
Mam utworzone zalozmy 20 obiektów klasy Foo, obiekty te sie nazywaja kolejno foo0, foo2, foo3, foo.. , foo19.
Chcialbym teraz uproscic poruszanie sie po nich w programie, czyli korzystac np. w taki sposob:
foo_tab[0]->jakas_metoda_klasy_Foo <- obiektu foo0
lub
foo_tab[15]->jakas_metoda_klasy_Foo <- obiektu foo15
Zalezy mi po prostu na poruszaniu sie, latwym poruszaniu sie po utworzonych obiektach, potrzebuje obiektu np 20, wybieram obiekt numer 20, a nie musze kombinowac switchem... wstyd sie przyznac ;].
Czy jest taka mozliwosc, a jesli nie tedy droga, to jak latwo i przyjemnie (bez wytezania szarych komorek) to zrealizowac? Przyznam, ze z C++ jest slaby, wiec prosze bardziej lopatologicznie, bo chcialbym to rowniez zrozumiec. Jesli to cos zmienia to programuje w Qt4, ale to raczej podstawy C++, wiec chyba to nie ma znaczenia. |
|
pekfos |
» 2011-02-17 18:28:27 tablica? klasa obiekty[ 20 ]; obiekty[ 8 ].do_sth(); zamiast wskaźników prościej chyba obiekty wrzucić do tablicy. weź się do nauki C++ |
|
inny1997 |
» 2011-02-17 18:37:43 pomyliłem się usunąć |
|
ison |
» 2011-02-17 19:03:25 chyba że chodzi Ci o tego typu rozwiązanie: Foo foo1, foo2;
Foo * foo_tab[ 20 ]; foo_tab[ 0 ] =& foo1; foo_tab[ 1 ] =& foo2; ...
foo_tab[ 0 ]->f();
|
|
hardtmuth Temat założony przez niniejszego użytkownika |
» 2011-02-17 21:58:22 Obiekty mam juz wykorzystywane w wielu miejscach w programie i odnosze sie do nich poprzez wskazniki, mam utworzone ~20 wskaznikow do pokazywani na typ klasy
klasa *foo1 = NULL; .. itd
i zainicjowane przez
foo0 = new klasa(0); foo1 = new klasa(0); itd.
Nie chcialbym teraz nic zmieniac w tym co juz mam, bo zmiany beda mnie kosztowac duzo przerobek, a chce poza tym stworzyc wlasnie tablice, czy tablie wskaznikow, w ktorej beda kolejno te wskazniki i bede mogl sie do nich odnosic w latwy sposob poprzez indeksy.
Co najlepsze?
EDIT: Teraz patrze na rozwiazanie ision i chyba z niego skorzystam, niedlugo sprobuje, bo przeciez ono w ogole mi nie przeszkada w aktualnej czesci kodu.
Niestety cos zle robie, nie pojdzie tak latwo. Rozwiazanie ision`a nie dam rady tutaj zastosowac, a robiac wskaznik na wskaznik i tego tablice cos pierdziele i nie wychodzi;/. |
|
ison |
» 2011-02-17 22:59:53 Teraz patrze na rozwiazanie ision [...]
|
synek, widzisz ty tam jakieś 'i' po 's'? Rozwiazanie ision`a [...]
| http://filolozka.brood.pl/kiedy-apostrof/w przypadku wskaźników na foo wystarczy że będziesz podstawiał je do tablicy bez brania referencji Foo * foo1;
Foo * foo_tab[ 20 ]; foo_tab[ 0 ] = foo1;
foo_tab[ 0 ]->f();
|
|
hardtmuth Temat założony przez niniejszego użytkownika |
» 2011-02-17 23:22:07 Przepraszam za literowke (niestety, ale na tym forum po kliknieciu "tworzenie nowej wiadomosci" nie mam wgladu w tresc forum i zle nicka zapamietalem) i zle wykorzystanie apostrofa. Mysle tylko, ze odzywki w stylu "synek" sa troche nie na miejscu.
Wstepnie sobie poradzilem z problemem przerabiajac po kolei caly kod tak, by wszystko trzymac od poczatku w tablicy wskaznikow. Cos dziala, ale dzisiaj juz nie mam sil po 12 h przed monitorem. Czas spac, bo jutro do roboty nie wstane. |
|
« 1 » |