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

Niszczenie obiektu przy kolizji

Ostatnio zmodyfikowano 2014-01-27 11:54
Autor Wiadomość
Madrei
Temat założony przez niniejszego użytkownika
Niszczenie obiektu przy kolizji
» 2014-01-25 11:48:31
C/C++
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
C/C++
void Obiekt::ruch()
{
    if( kolizja == false )
    {
        x -= aX; y -= aY;
        circle.setPosition( x, y );
    }
    if( kolizja == true )
    {
        ~Obiekt();
    }
   
}
P-103131
SeaMonster131
» 2014-01-25 12:40:03
» Kurs C++Konstruktor, destruktor i konstruktor kopiujący klasy lekcja - Destruktor klasy
Masz tam opisaną zasadę działania oraz przykład.
P-103136
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 ?
C/C++
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:
C/C++
class Obiekt
{
private:
    int x;
public:
    Obiekt() { x = 1; }
    ~Obiekt() { }
}
int main()
{
    Obiekt bibu ł ka(); //konstruktor
    //za sekundę chce go zniszczyć jak to zrobić ??
   
    //dalsza część kodu
    return 0;
}
P-103172
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.

C/C++
Obiekt bibu ł ka(); //konstruktor
//za sekundę chce go zniszczyć jak to zrobić ??
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.
P-103194
Madrei
Temat założony przez niniejszego użytkownika
» 2014-01-27 11:54:28
Dzięki o to mi chodziło :)
P-103309
« 1 »
  Strona 1 z 1