Anonymous user
Polymorphic copy: Difference between revisions
no edit summary
No edit summary |
|||
Line 584:
<pre>I'm the instance of S p: Y23
I'm the instance of S p: X23</pre>
=={{header|Delphi}}==
{{trans|C#}}
<lang delphi>program PolymorphicCopy;
type
T = class
function Name:String; virtual;
function Clone:T; virtual;
end;
S = class(T)
function Name:String; override;
function Clone:T; override;
end;
function T.Name :String; begin Exit('T') end;
function T.Clone:T; begin Exit(T.Create)end;
function S.Name :String; begin Exit('S') end;
function S.Clone:T; begin Exit(S.Create)end;
procedure Main;
var
Original, Clone :T;
begin
Original := S.Create;
Clone := Original.Clone;
WriteLn(Original.Name);
WriteLn(Clone.Name);
end;
begin
Main;
end.</lang>
{{out}}
<lang>S
S</lang>
=={{header|E}}==
|