eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[c++]Prosta klasa, czemu nie wywołuje destruktorów?[c++]Prosta klasa, czemu nie wywołuje destruktorów?
  • Data: 2009-07-28 16:00:41
    Temat: [c++]Prosta klasa, czemu nie wywołuje destruktorów?
    Od: "P.K.D" <g...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Tutaj ta klasa: http://paste.dprogramming.com/dpibqklz

    Chodzi o to, że gdy wywołuję server::clearList() to obiekty nie są
    niszczone, chyba dlatego, że lista zawiera wskaźniki. Jak to zrobić i
    czy da się zrobić tak, że destruktory będą wywoływane automatycznie?

    Jak się komuś nie chce linka czytać:

    W kodzie jest:
    server* srv = new server(name, address, port);

    A w konstruktorze
    servers.push_back(this);

    gdzie servers to statyczna w klasie server:
    static std::list<server *> servers;

    no ale gdy wywołuję metodę clear() z std::list nie są wywoływane
    destruktory elementów listy gdzie jest intrukcja:
    delete this;

    przez co nie jest zwalniana pamięć po zakończeniu programu. Chciałbym
    jednak by była i nie wiem jak to zrobić. Z góry dziękuję :)




    --
    Life is great, but still... we're all trapped. Each of us is stuck being
    who we are. Sometimes we fight to change ourselves, but ultimately this
    has little effect. We can change what we do, but we cannot change who we
    are.

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: