{$MODE OBJFPC}{$H+}
Type PMyClass = ^TMyClass;
TMyClass = Class
Private
SomeInt: Integer;
Procedure PrivateProc;
Public
SomeString: String;
Function PublicFunc(IntParam: Integer): String;
Property getSomeInt: Integer read SomeInt;
Property setSomeInt: Integer write SomeInt;
End;
Procedure TMyClass.PrivateProc;
Begin
SomeInt := 1024;
End;
Function TMyClass.PublicFunc(IntParam: Integer): String;
Begin
SomeInt := IntParam;
Exit(SomeString);
End;
Var Pnt: PMyClass;
Begin
New(Pnt);
With Pnt^ do
Begin
SomeString := 'Hello World!';
PrivateProc;
Writeln('getSomeInt() = ', getSomeInt);
Writeln('PublicFunc(50) = ', PublicFunc(50));
Writeln('getSomeInt() = ', getSomeInt);
End;
End.
eyRNT0RFIE9CSkZQQ317JEgrfQoKVHlwZSBQTXlDbGFzcyA9IF5UTXlDbGFzczsKICAgICBUTXlDbGFzcyA9IENsYXNzCiAgICAgICAgICAgICAgICAgUHJpdmF0ZQogICAgICAgICAgICAgICAgICBTb21lSW50OiBJbnRlZ2VyOwoKICAgICAgICAgICAgICAgICAgUHJvY2VkdXJlIFByaXZhdGVQcm9jOwogICAgICAgICAgICAgICAgIFB1YmxpYwogICAgICAgICAgICAgICAgICBTb21lU3RyaW5nOiBTdHJpbmc7CgogICAgICAgICAgICAgICAgICBGdW5jdGlvbiBQdWJsaWNGdW5jKEludFBhcmFtOiBJbnRlZ2VyKTogU3RyaW5nOwoKICAgICAgICAgICAgICAgICAgUHJvcGVydHkgZ2V0U29tZUludDogSW50ZWdlciByZWFkIFNvbWVJbnQ7CiAgICAgICAgICAgICAgICAgIFByb3BlcnR5IHNldFNvbWVJbnQ6IEludGVnZXIgd3JpdGUgU29tZUludDsKICAgICAgICAgICAgICAgICBFbmQ7CgpQcm9jZWR1cmUgVE15Q2xhc3MuUHJpdmF0ZVByb2M7CkJlZ2luCiBTb21lSW50IDo9IDEwMjQ7CkVuZDsKCkZ1bmN0aW9uIFRNeUNsYXNzLlB1YmxpY0Z1bmMoSW50UGFyYW06IEludGVnZXIpOiBTdHJpbmc7CkJlZ2luCiBTb21lSW50IDo9IEludFBhcmFtOwogRXhpdChTb21lU3RyaW5nKTsKRW5kOwoKVmFyIFBudDogUE15Q2xhc3M7CkJlZ2luCiBOZXcoUG50KTsKCiBXaXRoIFBudF4gZG8KIEJlZ2luCiAgU29tZVN0cmluZyA6PSAnSGVsbG8gV29ybGQhJzsKCiAgUHJpdmF0ZVByb2M7CiAgV3JpdGVsbignZ2V0U29tZUludCgpID0gJywgZ2V0U29tZUludCk7CiAgV3JpdGVsbignUHVibGljRnVuYyg1MCkgPSAnLCBQdWJsaWNGdW5jKDUwKSk7CiAgV3JpdGVsbignZ2V0U29tZUludCgpID0gJywgZ2V0U29tZUludCk7CiBFbmQ7CkVuZC4=