Article View: pl.comp.objects
Article #14309Re: C++0x...
From: Sektor van Skijlen
Date: Thu, 06 Apr 2006 16:20
Date: Thu, 06 Apr 2006 16:20
30 lines
3190 bytes
3190 bytes
Dnia Thu, 6 Apr 2006 09:26:40 +0200, Jedrzej Dudkiewicz skrobie: > Chodziło mi o to, że jeżeli jest GC, to nie ma ręcznej gospodarki pamięcią. > Jeżeli nie ma ręcznej gospodarki pamięcią, to nie może powstać wyciek, bo, > rozumowałem, żeby powstał, to w takim C albo C++ trzeba pamięć z palca > przydzielić, potem jej poużywać (albo i nie), a następnie przestać zwracać > na nią uwagę, tj. zlikwidować wszelkie odwołania do niej bez kasowania jej. Zlikwidować obiekty, lub nadpisać wskaźniki, które ją trzymały. Poza tym, lekko przesadzasz. "Wszelkie odwołania" to znaczy, że było ich twoim zdaniem wiele. Tymczasem obiekty współdzielone to rzadkość. Co więcej, współdzielenie obiektów poprzez trzymanie do nich kilku referencji to bardzo niebezpieczna technika programowania. GC załatwia ci tutaj problem usunięcia obiektu i pozostawienia wskaźnika wiszącym, ale nie załatwi ci problemu tożsamości obiektów. Znacznie sensowniej jest pozostawić jakiejś klasie opiekę nad tym obiektem i dać jej metodę, która zwróci wskaźnik/referencję do niej. Wtedy mamy pewność, że zawsze mamy do czynienia z tym obiektem, co trzeba. > Swoją drogą "nieużywane referencje leżące na dnie kontenera" jakoś nie > pasują mi do wycieków, bardziej do nieuważnej gospodarki obiektami. Różnica > jest taka, że taką nieużywaną referencję możemy jeszcze kiedyś przypadkiem > zwolnić a pamięć, która wyciekła, jest stracona "na wieki". Nie rozumiem. Dlaczego? -- // _ ___ Michal "Sektor" Malecki <sektor(whirl)kis.p.lodz.pl> \\ L_ |/ `| /^\ ,() <ethourhs(O)gmail.com> // \_ |\ \/ \_/ /\ C++ bez cholesterolu: http://www.intercon.pl/~sektor/cbx "I am allergic to Java because programming in Java reminds me casting spells"
Technical Details
Message-ID:
<e13f4a$dsh$2@kujawiak.man.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mailReferences:
<06031921120637@polnews.pl> <op.s7aublpwiy49nj@news.tpi.pl> <g0dr22p28i51tlo3ap2sers4s7noilv9ch@4ax.com> <op.s7btg8fhiy49nj@news.tpi.pl> <msts22l3bv8uqrrrfa7b57rc07ilg7n9ns@4ax.com> <op.s7b75lcgiy49nj@news.tpi.pl> <brgt22dl0lo8i5ki4kshk93rb0obdtcgg4@4ax.com> <op.s7f1gwcgiy49nj@news.tpi.pl> <e10mbr$iou$1@atlantis.news.tpi.pl> <e10nsp$onj$1@atlantis.news.tpi.pl> <e10o0s$9k0$1@news.supermedia.pl> <e11530$an7$2@kujawiak.man.lodz.pl> <e12g0s$8o9$1@news.supermedia.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.man.lodz.pl!not-for-mail
From: Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid>
Newsgroups: pl.comp.objects
Subject: Re: C++0x...
Date: Thu, 6 Apr 2006 16:20:26 +0000 (UTC)
Organization: LODMAN - Metropolitan Area Network in LODZ, Poland
Lines: 30
Sender: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Message-ID: <e13f4a$dsh$2@kujawiak.man.lodz.pl>
References: <06031921120637@polnews.pl> <op.s7aublpwiy49nj@news.tpi.pl> <g0dr22p28i51tlo3ap2sers4s7noilv9ch@4ax.com> <op.s7btg8fhiy49nj@news.tpi.pl> <msts22l3bv8uqrrrfa7b57rc07ilg7n9ns@4ax.com> <op.s7b75lcgiy49nj@news.tpi.pl> <brgt22dl0lo8i5ki4kshk93rb0obdtcgg4@4ax.com> <op.s7f1gwcgiy49nj@news.tpi.pl> <e10mbr$iou$1@atlantis.news.tpi.pl> <e10nsp$onj$1@atlantis.news.tpi.pl> <e10o0s$9k0$1@news.supermedia.pl> <e11530$an7$2@kujawiak.man.lodz.pl> <e12g0s$8o9$1@news.supermedia.pl>
NNTP-Posting-Host: zly.kis.p.lodz.pl
Mime-Version: 1.0
X-Trace: kujawiak.man.lodz.pl 1144340426 14225 212.191.89.2 (6 Apr 2006 16:20:26 GMT)
X-Complaints-To: abuse@man.lodz.pl
NNTP-Posting-Date: Thu, 6 Apr 2006 16:20:26 +0000 (UTC)
User-Agent: tin/1.6.2-20030910 ("Pabbay") (UNIX) (SunOS/5.9 (sun4u))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit