Article View: pl.comp.objects
Article #16371Re: Typ nale??cy do parametru template'a(czyli STL w parametrze)
From: Marcin 'Qrczak' Kowalczyk
Date: Thu, 12 Apr 2007 08:33
Date: Thu, 12 Apr 2007 08:33
38 lines
3216 bytes
3216 bytes
Dnia 12-04-2007, czw o godzinie 09:21 +0200, Adam Karpierz napisał(a):
> W C++ w ogole _nie istnieje_ instrukcja delete.
> (Tak samno jak _nie istnieje_ instrukcja throw np.)
>
> W C++ jest tylko i wylacznie _operator_ delete,
> (a raczej dwa) a jak tez dobrze wiadomo operatory
> w C++ to sa po prostu funkcje badz metody.
Nie.
Pomyliłem się tylko o tyle, że to nie instrukcja, tylko wyrażenie
(o wyniku typu void, więc w praktyce używane wyłącznie po dodaniu
średnika jako instrukcja). Wyrażenie delete woła destruktor i operator
delete.
Z kolei wyrażenie delete[] woła destruktory elementów i operator
delete[] (zwykle z argumentem przesuniętym względem tego, który dostało
wyrażenie delete, i odpowiednio powiększonym rozmiarem, bo rozmiar
tablicy większość implementacji zapisuje przed tablicą).
Podobnie wyrażenie new dla typu nie będącego typem tablicowym woła
operator new, a potem konstruktor, przy czym jeśli konstruktor rzuci
wyjątkiem, to przed jego propagacją wołany jest operator delete.
Dla typu tablicowego w wyrażeniu new wołany jest operator new[]
zamiast operatora new, wskaźnik i rozmiar mogą być przesunięte, a jeśli
któryś konstruktor rzuci wyjątkiem, to dodatkowo wołane są destruktory
elementów skonstruowanych przed nim.
Wyrażenie delete to co innego niż operator delete, wyrażenie delete[]
to co innego niż operator delete[], wyrażenie new to co innego niż
operator new i operator new[].
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID:
<1176366783.23274.9.camel@qrnik>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<slrnf1kjcu.ave.lrem@lrem.maxnet> <evdlhb$f4p$1@inews.gazeta.pl> <slrnf1kuam.ave.lrem@lrem.maxnet> <evdu5j$341$3@tkdami.pl> <eve1rq$2sk$1@inews.gazeta.pl> <evfipj$b8r$1@tkdami.pl> <evfk7p$bus$1@inews.gazeta.pl> <evfnv7$h5j$1@tkdami.pl> <evfpaj$675$1@inews.gazeta.pl> <evfvr3$nst$1@tkdami.pl> <9p3n13d74m71fuv8t6g3936jgp7opadg1q@4ax.com> <evga2j$207$1@tkdami.pl> <evgfmn$gb5$1@nemesis.news.tpi.pl> <evgnri$bii$1@tkdami.pl> <evgonc$ndo$1@atlantis.news.tpi.pl> <evgpci$ces$1@tkdami.pl> <evgrav$h4p$1@inews.gazeta.pl> <evgsr6$hin$3@tkdami.pl> <evgti6$r3c$1@inews.gazeta.pl> <evi5lh$d3g$1@tkdami.pl> <evi7ac$33n$1@inews.gazeta.pl> <1176338798.15916.5.camel@qrnik> <evkmni$gnc$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl> Newsgroups: pl.comp.objects Subject: Re: Typ nale??cy do parametru template'a(czyli STL w parametrze) Date: Thu, 12 Apr 2007 10:33:04 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 52 Message-ID: <1176366783.23274.9.camel@qrnik> References: <slrnf1kjcu.ave.lrem@lrem.maxnet> <evdlhb$f4p$1@inews.gazeta.pl> <slrnf1kuam.ave.lrem@lrem.maxnet> <evdu5j$341$3@tkdami.pl> <eve1rq$2sk$1@inews.gazeta.pl> <evfipj$b8r$1@tkdami.pl> <evfk7p$bus$1@inews.gazeta.pl> <evfnv7$h5j$1@tkdami.pl> <evfpaj$675$1@inews.gazeta.pl> <evfvr3$nst$1@tkdami.pl> <9p3n13d74m71fuv8t6g3936jgp7opadg1q@4ax.com> <evga2j$207$1@tkdami.pl> <evgfmn$gb5$1@nemesis.news.tpi.pl> <evgnri$bii$1@tkdami.pl> <evgonc$ndo$1@atlantis.news.tpi.pl> <evgpci$ces$1@tkdami.pl> <evgrav$h4p$1@inews.gazeta.pl> <evgsr6$hin$3@tkdami.pl> <evgti6$r3c$1@inews.gazeta.pl> <evi5lh$d3g$1@tkdami.pl> <evi7ac$33n$1@inews.gazeta.pl> <1176338798.15916.5.camel@qrnik> <evkmni$gnc$1@inews.gazeta.pl> NNTP-Posting-Host: paf87.warszawa.sdi.tpnet.pl Mime-Version: 1.0 X-Trace: atlantis.news.tpi.pl 1176366829 29091 217.96.225.87 (12 Apr 2007 08:33:49 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 12 Apr 2007 08:33:49 +0000 (UTC) In-Reply-To: <evkmni$gnc$1@inews.gazeta.pl> X-Mailer: Evolution 2.10.0 PLD Linux Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit