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

Destruktor i operator delete

Ostatnio zmodyfikowano 2013-05-04 22:42
Autor Wiadomość
Durian
Temat założony przez niniejszego użytkownika
Destruktor i operator delete
» 2013-05-04 21:47:03
Mam sobie taką deklarację wskaźników:
kafelek( * wsk[ 384 ] );

I teraz mam kod odpowiedzialny za kolizję między piłeczką a kafelkiem, gdy do niej dojdzie kafelek ma być usunięty z planszy:
C/C++
for( int i = 0; i < 384; i++ ) // 384 bo tyle jest elementów
{
    if( pileczka.getGlobalBounds().intersects( wsk[ i ]->kafel.getGlobalBounds() ) ) // to sprawdza czy jest jakaś kolizja (taka prowizoryczna)
    {
        czas_pre.x = - czas_pre.x; // to działa, ale teraz jest mało istotne
        delete[ i ] wsk; // tutaj wywala błąd i nie wiem jak usunąć jeden obiekt na który wskazuje wskaźnik (próbowałem również delete wsk [i])
    }
   
}
Myślę, że lepiej by to było zrobić vector, ale niestety nie umiem się jeszcze nimi posługiwać.
Moje pytanie brzmi: jak usunąć obiekt, na który wskazuje wskaźnik i czy aby zniknął on z planszy potrzebne są jakieś dodatkowe instrukcje w destruktorze?
P-82051
pekfos
» 2013-05-04 22:18:14
Usuń element operatorem delete i wyzeruj wskaźnik. Do pętli dodaj sprawdzanie poprawności wskaźnika.
P-82054
Durian
Temat założony przez niniejszego użytkownika
» 2013-05-04 22:42:48
Ok dzięki!!! Poradziłem sobie ;)
P-82060
« 1 »
  Strona 1 z 1