Перегрузка операций: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
(Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...)
 
Нет описания правки
Строка 1: Строка 1:
<source lang="Delphi">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.</source>
== Ссылки ==
== Ссылки ==
*[[Особенности языка: продвинутый уровень]]
*[[Особенности языка: продвинутый уровень]]
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка]
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка]

Версия от 22:23, 15 января 2010

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.

Ссылки