Как написать объектно-ориентированную программу в среде FreePascal

Более правильный вариант. Во FreePascal следует включить режим компиляции objfpc и подключить модуль Classes.

//{$ifdef fpc}
{$mode objfpc}
//{$endif}
//{$ifdef MSWINDOWS}{$apptype console}{$endif}
uses Classes;
type myclass = class(TObject)
private
    a,b: byte;
public
    procedure print;
    constructor create(c,d:byte);
end;
 
constructor myclass.create(c,d:byte);
begin
   //inherited Create;
   a:=c; b:=d
end;
 
procedure myclass.print;
begin  writeln(a); writeln(b) end;
 
var obj: myclass;
 
begin
     obj:=MyClass.Create(8,29);
     obj.b := 200;
     obj.print;
     obj.a := 100;
     writeln(obj.a);
     obj.free;
 
readln;
end.

Другой вариант - через указатель. Менее предпочтительный но описывается в большинстве учебников.

type
    pmyclass = ^myclass;
    myclass = object
        a,b: byte;
        procedure print;
        constructor Init(c,d:byte);
    end;
 
constructor myclass.Init(c,d:byte);
begin a:=c; b:=d end;
 
procedure myclass.print;
begin writeln(a); writeln(b) end;
 
var obj: pmyclass;
 
begin
    obj := new(pmyclass,Init(10,30));
    obj^.print;
    dispose(obj);
 
readln;
end.

Добавить комментарий