Niszczenie obiektu przy kolizji
Ostatnio zmodyfikowano 2014-01-27 11:54
Madrei Temat założony przez niniejszego użytkownika |
Niszczenie obiektu przy kolizji » 2014-01-25 11:48:31 if( kolizja == true ) { ~Obiekt(); }
Czy to jest poprawne rozumowanie ?? Chcę zniszczyć obiekt przed końcem funkcji w kt występuje. Oczywiście wyskakują mi błędy dlatego me pytanie kieruje ku wam. Czy aby tak należy to rozwiązać :) Przy czym to jest wewnątrz metody obiektu :D void Obiekt::ruch() { if( kolizja == false ) { x -= aX; y -= aY; circle.setPosition( x, y ); } if( kolizja == true ) { ~Obiekt(); } } |
|
SeaMonster131 |
» 2014-01-25 12:40:03 |
|
Madrei Temat założony przez niniejszego użytkownika |
» 2014-01-25 16:51:47 Czyli muszę utworzyć wskaźnik na obiekt typu Obiekt, a następnie zniszczyć wskaźnik ? Obiekt * tObiekt; tObiekt = new Obiekt;
if( kolizja == true ) delete tObiekt; nie idzie wywołać jakoś destruktora tak by usunął obiekt i już ... Dobra konstruktor idzie wywołać w kodzie jak wywołać destruktor ?? bo ten zapis z wskaźnikiem w środku metody klasy jest karkołomnym wyczynem. przykład: class Obiekt { private: int x; public: Obiekt() { x = 1; } ~Obiekt() { } } int main() { Obiekt bibu ł ka(); return 0; } |
|
pekfos |
» 2014-01-25 21:14:24 konstruktor idzie wywołać w kodzie jak wywołać destruktor ?? |
Wywoła się automatycznie, gdy obiekt będzie niszczony. Nie możesz go tu wywołać ręcznie. Co zniszczyć? Gdyby bibułka była zmienną, wiedz, że tak utworzona zmienna jest niszczona automatycznie, gdy program wyjdzie z bloku. Ręcznie wywołanie destruktora jest skrajnie niepoprawne. |
|
Madrei Temat założony przez niniejszego użytkownika |
» 2014-01-27 11:54:28 Dzięki o to mi chodziło :) |
|
« 1 » |