-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!ne
ws.nask.org.pl!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.d
e!newsfeed01.chello.at!newsfeed02.chello.at!news.chello.at.POSTED!not-for-mail
Date: Tue, 28 Jul 2009 19:52:03 +0200
From: grg12 <g...@c...at>
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
Newsgroups: pl.comp.programming
Subject: Re: [c++]Prosta klasa, czemu nie wywołuje destruktorów?
References: <h4n80i$97a$1@mx1.internetia.pl>
In-Reply-To: <h4n80i$97a$1@mx1.internetia.pl>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 090727-0, 2009-07-27), Outbound message
X-Antivirus-Status: Clean
Message-ID: <9e35e$4a6f3ab9$506cdd75$4435@news.chello.at>
X-Complaints-To: a...@c...at
Organization: chello.at
Lines: 34
NNTP-Posting-Host: 80.108.221.117 (80.108.221.117)
NNTP-Posting-Date: Tue, 28 Jul 2009 19:51:53 +0200
X-Trace: 9e35e4a6f3ab9f5c978d004435
Xref: news-archive.icm.edu.pl pl.comp.programming:182876
[ ukryj nagłówki ]P.K.D pisze:
> 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?
Dokładnie dlatego - masz listę wskaźników na obiekty a nie obiektów -
wywoływany jest więc "destruktor" wskaźnika :)
Możesz np. w metodzie clearList przelecieć po wszystkich elementach
zmiennej "servers" i wywołać ich destruktory np. tak:
for(std::list<server *>::iterator ii=servers.begin();ii!=servers.end();
ii++)
{
delete (*ii);
}
servers.clear();
Tyle że ciało tej funkcji prawdopodobnie trzeba będzie zdefiniować poza
klasą - w tym miejscu gdzie jest teraz destruktor jeszcze nie jest
zadeklarowany.
I jeszcze jedno - "delete this" w destruktorze to kiepski pomysł (no
chyba że się coś w specyfikacji języka zmieniło?). Normalnie wywołanie
destruktora jest konsekwencja wywołania delete - destruktor to "ostatnia
szansa na posprzątanie zanim system zwolni pamięć" (np. zwolnić pliki,
usunąć podobiekty utworzone przez new). W twoim przypadku destruktor
może być pusty - jeśli koniecznie chcesz coś tam mieć - wstaw "std::cout
<< "obiekt typu server o nazwie"<<name<<" właśnie popełnia
seppuku"<<std::endl;
Pozdrawiam
GRG
Następne wpisy z tego wątku
- 28.07.09 17:54 Tomasz Bywalec
- 28.07.09 20:11 P.K.D
- 29.07.09 11:37 Mateusz Loskot
- 29.07.09 11:37 Mariusz Kruk
- 29.07.09 11:53 Tomasz Kaczanowski
- 29.07.09 12:29 Tomasz Bywalec
- 29.07.09 12:53 Mateusz Loskot
- 29.07.09 12:54 Mateusz Loskot
- 02.08.09 12:09 Bronek Kozicki
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-02 Gdańsk => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-12-02 Kraków => Full Stack .Net Engineer <=
- 2024-12-02 Warszawa => Key Account Manager <=
- 2024-12-02 Kraków => Software .Net Developer <=
- 2024-12-02 Wrocław => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-02 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-12-02 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-12-02 Akumulatorki Ni-MH AA i AAA Green Cell
- 2024-12-02 Usiłowanie zabójstwa
- 2024-12-01 Rambo 2024. Co z radio-stopem
- 2024-12-01 Pijani kierowcy
- 2024-12-01 "Chciałem zamówić kurs tym"
- 2024-11-30 Windykatorzy ścigają spadkobierców z mandat nieboszczyka za przekroczenie prędkości???
- 2024-11-30 Łódź => Technical Artist <=
- 2024-11-30 Lublin => Inżynier Serwisu Sprzętu Medycznego <=