🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Generic a deklaracja w metodzie klasy

#93043
From: Łukasz 'Maly' Ostrowski
Date: Thu, 01 Jul 2010 10:15
74 lines
3345 bytes
On Thu, 01 Jul 2010 11:30:31 +0200, webmajsterek@poczta.onet.pl wrote:
> a jaki jezyk ma tak wyjatkowe i cudowne właściwości ??

C#/C++/Java. Największy potencjał w C++, najłatwiejsze i
prawie feature complete w C#, najuboższe i okrojone w Java'ie,
jak właściwie cała Java ;-).

> teoretycznie da sie to obejsc bo zrobilem cos takiego  ze zrobilem obiekt 
> abstrakcyjny ( ma dokladnie te same metody ) i wszystkie moetody w nim sa 
> wirtualne 
> 
> type 
>     AbstractMyClass=class abstract
>         var Next:MyClass;
>         procedure  Add(Source :MyClass );virtual;abstract;
>     end;
> 
>    Generic MyClass<nBit>=class(AbstractMyClass)
>       procedure  Add(Source :MyClass );override;
>    end;  
> 
> nawet to działa !! 

U mnie się nie kompiluje, w każdym razie "as is", skąd kompilator
ma wiedzieć jaką specjalizacje ma "var Next:MyClass;"?

Free Pascal Compiler version 2.4.0 [2009/12/18] for i386
...
Generics without specialization can not be used as a type for a variable.


> jak gdziesz w programie jest taka  konstrukcja
> 
> type 
> 
>     MyClass=class;
>     {...} 
>     NextClass= class
>        test:MyClass;
>     end;  { Definicje innych klas -- które odwoluja sie do MyClass}
>     
>   { wlasciwa definicja MyClass }
>    generic MyClass<nBit>= clas ( JakisObjekt )
>       private type
>          TArray=array of nBit; << to tu blad -- kompilator mowi ze nie wie co 
> to nBit 
>       private var 
>          Data:TArray;     
>   {...}
>    end;   

Nic dziwnego, deklaracja zapowiadająca jest niezgodna z definicją.

> a moze w necie jest jakies naarzedzie ktore ma podobna ffunkcjionalnosc jak 
> generic ( oczywiscie dla pascala ).
> parsowało by kod  i odpowiednio z obiektu wejsciowego wyszukiwało by slow 
> kluczowych i je podmienialo .znacie cos takiego ??

Jakikolwiek grep z replacem w wersji bazowej wykonywany
z build scriptu na etapie pre build ;-). Rzeźbienie w
gównie oczywiście ;-).

p.s. Bierzesz jakieś leki? Po 2+ latach na grupie, po raz pierwszy
     nie musiałem Cie odszyfrowywać jeżeli chodzi o gramatyke, 
     ortografie i literówki ;-). W sensie, po raz pierwszy nie ma
     dramatu ;-).

p.p.s. Jeżeli wklejasz dłuższy fragment to zamiast w posta lepiej
       do wkleić na pastebin.com albo cos podobnego. Najlepiej
       w formie wprost do kompilacji. ;-)

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Technical Details
Message-ID: <scfxyygq3fib$.6jn6nl6d4hoe.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <13mp0lmcq7dbl.1djvbhj3mgqk0$.dlg@40tude.net> <60b5.000013d6.4c2c6037@newsgate.onet.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.dialog.net.pl!not-for-mail
From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl>
Newsgroups: pl.comp.lang.pascal
Subject: Re: Generic a deklaracja w metodzie klasy
Date: Thu, 1 Jul 2010 12:15:50 +0200
Organization: Acme
Lines: 74
Message-ID: <scfxyygq3fib$.6jn6nl6d4hoe.dlg@40tude.net>
References: <13mp0lmcq7dbl.1djvbhj3mgqk0$.dlg@40tude.net> <60b5.000013d6.4c2c6037@newsgate.onet.pl>
NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1277979366 32007 78.9.71.129 (1 Jul 2010 10:16:06 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Thu, 1 Jul 2010 10:16:06 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit