Destruktory

Destruktor to metoda klasy wywoływana podczas niszczenia obiektu danej klasy. Służy on przede wszystkim do zwalniania pamięci zarezerwowanej dla pól dynamicznych tej klasy. Destruktor, podobnie jak i konstruktor, nie ma typu, a jego nazwa jest identyczna jak nazwa danej klasy poprzedzona tyldą (~).

Przykład


class Punkt
{
  public:
    int *x, *y;
    Punkt(); // kontruktor w którym są tworzone pola x i y
    ~Punkt(); //Destruktor
};
// ...
Punkt::~Punkt()
{
  delete x;
  delete y;
}

W tym przykładzie celowo ominąłem definicję konstruktora, gdyż nie jest ona istotna.

Zobacz też:
Informacje
Ostatnia modyfikacja 20-03-2009 16:02 Ostatni autor manfredek
Ilość wyświetleń 4248 Wersja 7
Komentarz
manfredek dnia 20-03-2009 15:48
Mammoth napisał:
a jaki kompilator jest zgodny z ISO ??
Comeau na przykład.

Mammoth napisał:
Wywołanie destruktora nie powoduje zniszczenia obiektu. Możemy użyć destruktora do "restartowania" obiektów.
Bzdura...
standard, 12.4.14 napisał:
Once a destructor is invoked for an object, the object no longer exists
Mammoth dnia 19-03-2009 18:59
a jaki kompilator jest zgodny z ISO ?? Co kompilator to inne obyczaje (przynajmniej niektóre deklarują, że mają swój standard).
MarcelS dnia 05-05-2007 11:37
Dev jest zgodny? Śmiech na sali.
Coldpeer dnia 28-02-2007 20:26
virus1441: trochę spóźniony, ale... Dev-C++ używa g++ (MinGW) ;)
virus1441 dnia 13-05-2006 11:37
Bo dev jest zgodny z ISO C++ :) Mój kompilator nie BYŁ (przeżuciłem się na Linuxa, a g++ jest zgodny z ISO). Poprawiłem.
grzesko dnia 12-05-2006 09:02
Wszędzie czytałem, że destruktor nie przyjmuje argumentów (i nic nie zwraca) a tu taka definicja. Dev-c++ też się z tym nie zgadza, bo go zapytałem ;-)

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0188 sek. (zapytań SQL: 9)