🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92609

Re: [OT] No to ciekawostka

#92609
From: Andrzej Grażyński
Date: Thu, 11 Sep 2008 11:46
53 lines
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-mail
References: <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