ВУЗ:
Составители:
Рубрика:
74
function Slash (n: Number): Number; virtual;
function IsEqual(n: Number): Boolean; virtual; abstract;
procedure Add (n: Number); virtual; abstract;
procedure Subtract (n: Number); virtual; abstract;
procedure MultiplyBy(n: Number); virtual; abstract;
procedure DivideBy (n: Number); virtual; abstract;
procedure Assign (n: Number); virtual; abstract;
function AsString: String; virtual; abstract;
constructor Create; virtual;
constructor CreateEqualTo(n: Number); virtual;
end;
ClassNumber = class of Number;
implementation
function Number.Plus(n: Number): Number;
begin
result:=ClassNumber(self.ClassType).CreateEqualTo(self);
result.Add(n);
end;
function Number.Minus(n: Number): Number;
begin
result:=ClassNumber(self.ClassType).CreateEqualTo(self);
result.Subtract(n);
end;
function Number.Dot(n: Number): Number;
begin
result:=ClassNumber(self.ClassType).CreateEqualTo(self);
result.MultiplyBy(n);
end;
function Number.Slash(n: Number): Number;
begin
result:=ClassNumber(self.ClassType).CreateEqualTo(self);
result.DivideBy(n);
end;
constructor Number.Create;
begin
inherited Create;
end;
constructor Number.CreateEqualTo(n: Number);
begin
inherited Create; self.Assign(n);
end;
end.
function Slash (n: Number): Number; virtual; function IsEqual(n: Number): Boolean; virtual; abstract; procedure Add (n: Number); virtual; abstract; procedure Subtract (n: Number); virtual; abstract; procedure MultiplyBy(n: Number); virtual; abstract; procedure DivideBy (n: Number); virtual; abstract; procedure Assign (n: Number); virtual; abstract; function AsString: String; virtual; abstract; constructor Create; virtual; constructor CreateEqualTo(n: Number); virtual; end; ClassNumber = class of Number; implementation function Number.Plus(n: Number): Number; begin result:=ClassNumber(self.ClassType).CreateEqualTo(self); result.Add(n); end; function Number.Minus(n: Number): Number; begin result:=ClassNumber(self.ClassType).CreateEqualTo(self); result.Subtract(n); end; function Number.Dot(n: Number): Number; begin result:=ClassNumber(self.ClassType).CreateEqualTo(self); result.MultiplyBy(n); end; function Number.Slash(n: Number): Number; begin result:=ClassNumber(self.ClassType).CreateEqualTo(self); result.DivideBy(n); end; constructor Number.Create; begin inherited Create; end; constructor Number.CreateEqualTo(n: Number); begin inherited Create; self.Assign(n); end; end. 74