Tablica obiektów z tablicami wskaźników

Odpowiedz Nowy wątek
2011-08-19 01:02
0

Witam,
Mam taki problem:

Mam sobie klasę car, w której jest 50-elementowa tablica wskaźników na obiekty innej klasy.

Jak poprawnie utworzyć w programie tablicę obiektów typu car, aby te wskaźniki (te stablicowane w obiektach klasy car w tablicy) się nie sypały? Bo zauważyłem, że czasami są zupełnie bzdurne i psują mi cały program.

Aktualnie ratuję się takim działającym rozwiązaniem:

const int NR_OF_CARS = 10;
car c1,c2,c3,c4,c5,c6,c7,c8,c9,c10;
car cars[NR_OF_CARS] = {c1,c2,c3,c4,c5,c6,c7,c8,c9,c10};

Które niestety nie jest idealne bo co jak przyjdzie mi zwiększyć rozmiar tablicy do 1000 elementów?

Próbowałem już zabaw z new'em ale na próżno.

Pozostało 580 znaków

2011-08-19 01:42
Kumashiro
0
Leogict napisał(a)

Mam sobie klasę car, w której jest 50-elementowa tablica wskaźników na obiekty innej klasy.

Jak poprawnie utworzyć w programie tablicę obiektów typu car, aby te wskaźniki (te stablicowane w obiektach klasy car w tablicy) się nie sypały? Bo zauważyłem, że czasami są zupełnie bzdurne i psują mi cały program.

Aktualnie ratuję się takim działającym rozwiązaniem:

const int NR_OF_CARS = 10;
car c1,c2,c3,c4,c5,c6,c7,c8,c9,c10;
car cars[NR_OF_CARS] = {c1,c2,c3,c4,c5,c6,c7,c8,c9,c10};

Ja tu nie widzę tablicy wskaźników na car. Widzę tablicę obiektów car.

Leogict napisał(a)

Które niestety nie jest idealne bo co jak przyjdzie mi zwiększyć rozmiar tablicy do 1000 elementów?

Próbowałem już zabaw z new'em ale na próżno.

Tablicę tworzysz normalnie:

car     cars[BIGNUM];
 
for ( i = 0; i < BIGNUM; i++ ) {
    cars[i] = new car("Nissan Lamera");
};

Pamiętaj żeby później posprzątać.

Zjadło mi gwiazdkę... *cars[BIGNUM]; - Kumashiro 2011-08-19 01:45
Ta odpowiedź jest ok, zakładając, że możemy przewidzieć z góry ile maxymalnie będzie takich obiektów. Zamiast tablicy można użyć starego dobrego wektora, który można powiększać w czasie działania programu ;> - Atael 2011-08-19 01:55
sam jesteś lamera ;-) - Azarien 2011-08-19 06:31

Pozostało 580 znaków

2011-08-19 08:00
0
Leogict napisał(a)

(...) aby te wskaźniki (te stablicowane w obiektach klasy car w tablicy) się nie sypały? Bo zauważyłem, że czasami są zupełnie bzdurne i psują mi cały program.(...)

Ze wskaźnikami trzeba po prostu uważać. Jeżeli dany wskaźnik nie wskazuje na nic konkretnego to ustawiaj tam NULL. Będziesz mógł sprawdzić czy wskaźnik wtenczas na coś wskazuje. Staraj się utrzymać zasadę, że na jeden obiekt wskazuje jeden wskaźnik w programie(chyba że wiesz co robisz ;)) Jak przestaniesz używać obiektu utworzonego przez new, użyj instrukcji delete do zwolnienia pamięci. Na ten temat można pisać dużo i jeszcze więcej, ale nie pokazałeś kodu, który Ci "psuje" aplikację.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0