-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
-for-mail
From: Michoo <m...@v...pl>
Newsgroups: pl.comp.programming
Subject: Re: Zagwozdka - wyjątek w konstruktorze?
Date: Fri, 17 Sep 2010 00:40:20 +0200
Organization: http://onet.pl
Lines: 51
Message-ID: <i6u6a2$ei$1@news.onet.pl>
References: <op.vi24nsup8x7o78@notebook>
<4c921c50$0$22795$65785112@news.neostrada.pl> <i6tg8u$172$1@news.onet.pl>
<4c928eb7$0$22812$65785112@news.neostrada.pl>
NNTP-Posting-Host: c6-100.icpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1284676738 466 62.21.6.100 (16 Sep 2010 22:38:58 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Thu, 16 Sep 2010 22:38:58 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.10) Gecko/20100619
Icedove/3.0.5
In-Reply-To: <4c928eb7$0$22812$65785112@news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:186866
[ ukryj nagłówki ]W dniu 16.09.2010 09:19, klops pisze:
>
> Wracając do tematu, zastanów się nad tym (może bozia pozwoli dostrzec
> problem o którym wzmiankowałem...):
[...]
> Foo()
> {
> b = new Bar();
> cout <<"Foo"<<endl;
> throw 1;
[...]
> Dla podpowiedzi: b wyciekło...
To nie ma nic (poza lokalizacją) wspólnego z konstruktorem - błąd leży w
braku zwalniania zasobów przy opuszczaniu zakresu. Tu masz to samo a kod
jest rodem z C.
{
char *buf=malloc(100);
//...
if(cond)
return -1;
//...
free(buf);
return 0;
}
Standardowym podejściem w sytuacji gdy używamy "gołych" wskaźników i
wyjątków w jednym miejscu (nie tylko w konstruktorze) jest taki zapis:
Foo():b(0)
{
try
{
cout <<"Foo"<<endl;
//...
b=new Bar();
//...
throw 1;
//...
}
catch(...)
{
if(b)
delete b;
throw;
}
}
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 16.09.10 15:46 klops
- 17.09.10 06:49 Bronek Kozicki
- 17.09.10 11:00 Michoo
- 17.09.10 11:47 Wojciech \"Spook\" Sura
- 16.09.10 22:00 klops
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-14 Dobra zmiana
- 2024-11-14 Czy prezydent może ułaskawić od zadośćuczynienia? [A. Lepper odszkodowania]
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=