Перегрузка операций
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
После перегрузки классом или записью операций он ведет себя как стандартный тип.
type
Frac = record
private
num,denom: integer;
public
constructor (n,d: integer);
begin
num := n;
denom := d;
end;
class function operator+(a,b: Frac): Frac;
begin
Result := new Frac(a.num*b.denom+b.num*a.denom,a.denom*b.denom);
end;
function ToString: string; override;
begin
Result := Format('{0}/{1}',num,denom);
end;
end;
var
f := new Frac(1,2);
f1 := new Frac(3,5);
begin
writelnFormat('{0} + {1} = {2}',f,f1,f+f1);
end.