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

vector obiektow wlasnej klasy

Ostatnio zmodyfikowano 2010-02-04 00:53
Autor Wiadomość
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?
P-13528
Elaine
» 2010-02-03 18:41:17
Jeśli masz vector<Foo> to przechowuje wartości, jeśli vector<Foo*> to wskaźniki.
P-13529
dmx81
Temat założony przez niniejszego użytkownika
» 2010-02-03 19:08:19
C/C++
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 :)
P-13530
Elaine
» 2010-02-03 19:19:59
A gwiazdka gdzie?
P-13531
dmx81
Temat założony przez niniejszego użytkownika
» 2010-02-03 19:24:45
eee... tu? ->* :D no mialo byc
C/C++
std::vector <* C_poziom1 > obiekt;

obiekt.push_back( podloga1 );
czy
obiekt.push_back( * podloga1 );
??
P-13533
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|

P-13534
malan
» 2010-02-03 19:44:30
Ehhh..., dla obiektów:
C/C++
std::vector < C_poziom1 > vTablicaObiektow;
C_poziom1 cPodloga;
cPodloga.i_x = 10;
cPodloga.i_y = 10;
//...
vTablicaObiektow.push_back( cPodloga );
Dla wskaźników:
C/C++
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;

P-13535
Elaine
» 2010-02-03 20:28:22
I zaraz po delete masz w wektorze nieprawidłowy wskaźnik. Na pewno o to chodzi?
P-13539
« 1 » 2
  Strona 1 z 2 Następna strona