Article View: pl.comp.lang.pascal
Article #93165Re: Przeciazanie jak w delphi
From: Wiktor S.
Date: Wed, 13 Apr 2011 20:42
Date: Wed, 13 Apr 2011 20:42
77 lines
2368 bytes
2368 bytes
Można zrobić operatory na interfejsie, a klasę zrobić dziedziczącą po
TInterfacedObject.
Trzeba jednak pamiętać, by operować na zmiennych "interfejsowych" a nie
"klasowych".
=======
{$mode objfpc}
type IKlasa = interface
function getvalue:integer;
procedure setvalue(v:integer);
property value:integer read getvalue write setvalue;
end;
type TKlasa = class(TInterfacedObject,IKlasa)
fvalue:integer;
constructor Create(x:integer);
destructor Destroy; override;
function getvalue:integer;
procedure setvalue(v:integer);
property value:integer read getvalue write setvalue;
end;
constructor TKlasa.Create(x:integer);
begin
writeln('konstruktor ',x);
value:=x;
end;
destructor TKlasa.Destroy;
begin
writeln('destruktor ',value);
end;
procedure TKlasa.setvalue(v:integer);
begin
fvalue:=v;
end;
function TKlasa.getvalue:integer;
begin
getvalue:=fvalue;
end;
operator +(a,b:IKlasa):IKlasa;
begin
result:=TKlasa.Create(a.value + b.value);
end;
var a,b,c,d:IKlasa;
begin
a:=TKlasa.Create(2);
b:=TKlasa.Create(3);
c:=TKlasa.Create(4);
d:=a+b+c;
writeln('wynik: ',d.value);
end.
=======
konstruktor 2
konstruktor 3
konstruktor 4
konstruktor 5
konstruktor 9
wynik: 9
destruktor 5
destruktor 2
destruktor 3
destruktor 4
destruktor 9
--
Azarien
Technical Details
Message-ID:
<io9pod$3lv$2@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mailReferences:
<io4i7i$2dr$2@news.onet.pl> <129b.0000009c.4da5d7f3@newsgate.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail From: "Wiktor S." <wswiktorSP@Mpoczta.fm> Newsgroups: pl.comp.lang.pascal Subject: Re: Przeciazanie jak w delphi Date: Wed, 13 Apr 2011 22:42:09 +0200 Organization: http://onet.pl Lines: 78 Message-ID: <io9pod$3lv$2@news.onet.pl> References: <io4i7i$2dr$2@news.onet.pl> <129b.0000009c.4da5d7f3@newsgate.onet.pl> NNTP-Posting-Host: 109.243.136.59 Mime-Version: 1.0 X-Trace: news.onet.pl 1302882894 3775 109.243.136.59 (15 Apr 2011 15:54:54 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Fri, 15 Apr 2011 15:54:54 +0000 (UTC) In-Reply-To: <129b.0000009c.4da5d7f3@newsgate.onet.pl> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Windows Mail 6.0.6002.18197 X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17514 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit