mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 03:47:59 +02:00
101 lines
1.4 KiB
ObjectPascal
101 lines
1.4 KiB
ObjectPascal
|
|
|
|
TYPE
|
|
|
|
psimpleobject = ^tsimpleobject;
|
|
tsimpleobject = object
|
|
x: longint;
|
|
z: array[0..34] of byte;
|
|
Procedure Init(somez: longint);
|
|
Procedure Hello;
|
|
end;
|
|
|
|
pbase = ^tbase;
|
|
tbase = object
|
|
numofentries : longint;
|
|
constructor init(i : integer);
|
|
destructor done; virtual;
|
|
procedure showit; virtual;
|
|
end;
|
|
|
|
pderived = ^tderived;
|
|
tderived = object(tbase)
|
|
x: longint;
|
|
constructor init;
|
|
destructor done; virtual;
|
|
procedure showit; virtual;
|
|
end;
|
|
|
|
|
|
Procedure TsimpleObject.init(somez: longint);
|
|
var
|
|
i: byte;
|
|
Begin
|
|
for i:=0 to 34 do
|
|
z[i]:=i;
|
|
x:=somez;
|
|
end;
|
|
|
|
|
|
Procedure TSimpleObject.hello;
|
|
var
|
|
i: byte;
|
|
Begin
|
|
WriteLn('hello world');
|
|
for i:=0 to 34 do
|
|
Write(z[i],' ');
|
|
WriteLn;
|
|
WriteLN(x);
|
|
end;
|
|
|
|
|
|
constructor tbase.init(i: integer);
|
|
Begin
|
|
numofentries := i;
|
|
end;
|
|
|
|
destructor tbase.done;
|
|
Begin
|
|
end;
|
|
|
|
procedure tbase.showit;
|
|
Begin
|
|
WriteLn('This is the base class');
|
|
end;
|
|
|
|
constructor tderived.init;
|
|
Begin
|
|
inherited init(5);
|
|
x:=10;
|
|
end;
|
|
|
|
procedure tderived.showit;
|
|
Begin
|
|
WriteLn('This is the derived class');
|
|
WriteLn(numofentries);
|
|
WriteLn(x);
|
|
end;
|
|
|
|
destructor tderived.done;
|
|
Begin
|
|
end;
|
|
|
|
|
|
Procedure CreateObject;
|
|
var
|
|
obj: pbase;
|
|
Begin
|
|
obj^.showit;
|
|
dispose(obj,done);
|
|
end;
|
|
|
|
var
|
|
myobj: tsimpleobject;
|
|
obj: pbase;
|
|
devobj: tderived;
|
|
Begin
|
|
obj:=new(pbase,init(10));
|
|
obj^.showit;
|
|
dispose(obj,done);
|
|
end.
|