eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[c++]Prosta klasa, czemu nie wywołuje destruktorów?Re: [c++]Prosta klasa, czemu nie wywołuje destruktorów?
  • Data: 2009-07-29 12:29:12
    Temat: Re: [c++]Prosta klasa, czemu nie wywołuje destruktorów?
    Od: Tomasz Bywalec <t...@p...dont.spam.me.o2.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Tomasz Kaczanowski pisze:
    [...]
    >
    > Nie - jest bardzo dobrze - to co jest allokowane przez obiekt, czyścić
    > powinien obiekt, jeśli ty allokujesz, to powinieneś ty zwalniać. Jeśli
    > byłoby inaczej, nigdy byś nie wiedział, co zwalniać, a co nie i wtedy
    > byłby bałagan.
    >

    Wydaje mi się, że przeoczyłeś fakt, że w oryginalnym kodzie P.K.D.
    "delete this;" jest wywoływane w destruktorze. Pod pewnymi warunkami
    jest to dopuszczalne w innych metodach obiektu, ale użycie tego w
    destruktorze może tylko narobić problemów. Jeżeli obiekt został
    utworzony na stosie to instrukcja ta bodajże doprowadzi do UB, jeśli
    natomiast obiekt znajduje się na stercie to "delete ten_obiekt;" zostało
    już wywołane i na pewno nie ma potrzeby wywoływania go ponownie na tym
    samym obiekcie.

    Pozdrawiam,
    Tomek Bywalec

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: