Thema: Delphi TObject = Object ?

Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#17

Re: TObject = Object ?

  Alt 31. Mär 2006, 15:04
Eine VMT würde keinen Sinn machen, wenn man nicht erben kann:
Delphi-Quellcode:
type
  PFigure = ^TFigure;
  TFigure = object
    X, Y: Integer;

    constructor Init(AX, AX: Integer);
    destructor Done; virtual;
    procedure Draw; virtual;
  end;

  PCircle = ^TCircle;
  TCircle = object(TFigure)
    R: Integer;
    constructor Init(AX, AY, AR: Integer);
    destructor Done; override;

    procedure Draw; override;
  end;

  PRectangle = ^TRectangle;
  TRectangle = object(TFigure)
    X1, Y1: Integer;
    constructor Init(AX0, AY0, AX1, AY1: Integer);
    procedure Draw; override;
  end;

var
  DynFigure: PFigure;
  StaticFigure: TFigure; // behandeln wie einen Record
begin
  DynFigure := New(PRectangle, Init(10, 10, 20, 20));
  DynFigure^.Draw; // zeichnet ein Rechteck
  Dispose(DynFigure, Done);

  StaticFigure.Init(10, 10);
  StaticFigure.Draw; // zeichnet einen Punkt
  StaticFigure.Done;
end.
  Mit Zitat antworten Zitat