Article View: pl.comp.lang.pascal
Article #92609Re: [OT] No to ciekawostka
From: Andrzej Grażyński
Date: Thu, 11 Sep 2008 11:46
Date: Thu, 11 Sep 2008 11:46
53 lines
2303 bytes
2303 bytes
Łukasz 'Maly' Ostrowski pisze: > Andrzej Grażyński wrote: >> Constructor TFIrstClass.init2; >> begin >> Self.init; end; > > > Powinno się wypisać trzecia, wypisuje się pierwsza. > Zgaduje, że c-tor TFirstClass.Init nadpisuje VMT z > bliżej mi nieznanego powodu? A trudno znależć > dokument analogiczny do ISO 14882 w kontekście > C++ ale dla Object Pascala, więc trudno mi się > czymś sensownym podeprzeć w tej kwestii =]. > > P.S. Za cholere nie mogę się doszukać czym jest > call do Fail, i dlaczego można oczekiwać od > c-tora zwrócenia bool'a ;). Ale ja jestem "zbyt > nowe pokolenie" ;). > > Przy czym wydaje mi się, że Fail to jakiś odpowiednik > throw/raise żeby wymusić destrukcję obiektu który > "nie umiał się zainicjalizować" ;). > Przy wywołaniu: obiekt.konstruktor lub inherited konstruktor: Jeżeli w konstruktorze wykona się Fail, to kończy on pracę i zwraca FALSE. Jeśli skończy pracę normalnie, zwraca TRUE. Przy wywołaniu wskaźnik_obiektu := New(Typ wsk., Konstruktor (...)); jeśli w konstruktorze wykona się Fail, to funkcja New zwróci NIL. A propos oryginalnej zagadki, błąd kompilatora jest tutaj: Constructor TFirstClass.init2; begin Self.init; <--- end; To wywołanie nie powinno ruszać pola VMT link, a nadpisuje je typem TFirstClass.
Technical Details
Message-ID:
<gab0dr$jj4$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<20080905121945.03f2cdf2.solaris@be.inspired> <ga9dbc$t6b$1@news.onet.pl> <ga9plv$qtu$1@news.dialog.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: Andrzej Grażyński <grazynsk@petex.com.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: [OT] No to ciekawostka Date: Thu, 11 Sep 2008 13:46:02 +0200 Organization: Onet.pl Lines: 58 Message-ID: <gab0dr$jj4$1@news.onet.pl> References: <20080905121945.03f2cdf2.solaris@be.inspired> <ga9dbc$t6b$1@news.onet.pl> <ga9plv$qtu$1@news.dialog.net.pl> NNTP-Posting-Host: 83.1.77.84 Mime-Version: 1.0 X-Trace: news.onet.pl 1221133564 20068 83.1.77.84 (11 Sep 2008 11:46:04 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Thu, 11 Sep 2008 11:46:04 +0000 (UTC) X-Sender: 2ysppuKZfnIJFd8Xm5/5BA== In-Reply-To: <ga9plv$qtu$1@news.dialog.net.pl> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit