dmx81 Temat założony przez niniejszego użytkownika |
vector obiektow wlasnej klasy » 2010-02-03 18:28:34 witam. jesli dodaje do vectora obiekty wlasnej klasy, to tablica przechowuje do nich wskazniki, czy sa to jakby odrebne obiekty? chodzi o to, ze tworze rozne obiekty, pozniej chce je poszeregowac - np na przeszkody(np podloga, sciana), na "odbierajace zycie przy kolizji - np ogien, kolce itd", w tym celu tworze tablice, gdzie poprzez push_back wybieram odpowiednie obiekty i je tam lokuje - ale czasem zdarzy sie tak, ze jeden obiekt znajdzie sie w kilku tablicach, a nie chce bez sensu zajmowac pamieci, dlatego pytam. a jesli tablice przechowuja cale obiekty, a nie wskazniki, to pewnie do kazdego obiektu bede musial utworzyc wskaznik, nastepnie do vektora wrzucac te wskazniki? |
|
Elaine |
» 2010-02-03 18:41:17 Jeśli masz vector<Foo> to przechowuje wartości, jeśli vector<Foo*> to wskaźniki. |
|
dmx81 Temat założony przez niniejszego użytkownika |
» 2010-02-03 19:08:19 class C_poziom1 { public: int i_x, i_y, i_s, i_w; bool b_disp; BITMAP * obrazek; C_poziom1(); C_poziom1( int x, int y, int s, int w ); }; std::vector < C_poziom1 > obiekt; tak bylo, czyli ze wartosci,jak zmienie na std::vector < C_poziom1 > obiekt; to beda wskazniki? jesli tak, to dzieki, zaraz sprawdzam :) |
|
Elaine |
» 2010-02-03 19:19:59 A gwiazdka gdzie? |
|
dmx81 Temat założony przez niniejszego użytkownika |
» 2010-02-03 19:24:45 eee... tu? ->* :D no mialo byc std::vector <* C_poziom1 > obiekt;
obiekt.push_back( podloga1 ); czy obiekt.push_back( * podloga1 ); ?? |
|
dmx81 Temat założony przez niniejszego użytkownika |
» 2010-02-03 19:40:57 std::vector <* C_poziom1 > obiekt; main.cpp|14|error: `*' cannot appear in a constant-expression| |
|
malan |
» 2010-02-03 19:44:30 Ehhh..., dla obiektów: std::vector < C_poziom1 > vTablicaObiektow; C_poziom1 cPodloga; cPodloga.i_x = 10; cPodloga.i_y = 10;
vTablicaObiektow.push_back( cPodloga );
Dla wskaźników: std::vector < C_poziom1 *> vTablicaWskaznikow; C_poziom1 * cPodloga = new C_poziom1; cPodloga->i_x = 10; cPodloga->i_y = 10;
vTablicaWskaznikow.push_back( cPodloga ); delete cPodloga;
|
|
Elaine |
» 2010-02-03 20:28:22 I zaraz po delete masz w wektorze nieprawidłowy wskaźnik. Na pewno o to chodzi? |
|
« 1 » 2 |