Обобщенные классы: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
(Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...)
 
Нет описания правки
 
Строка 1: Строка 1:
Демонстрация создания простого обобщенного класса стека на базе динамического массива
<source lang="Delphi">type
  Stack<T> = class
  private
    a: array of T;
    last: integer;
  public 
    constructor;
    begin
      SetLength(a,100);
      last := 0;
    end;
    procedure push(i: T);
    begin
      a[last] := i;
      last += 1;
    end;
    function pop: T;
    begin
      last -= 1;
      pop := a[last];
    end;
    function top: T;
    begin
      top := a[last-1];
    end;
    function empty: boolean;
    begin
      Result := (last=0);
    end;
  end;
 
var s: Stack<integer>;
begin
  s := new Stack<integer>;
  s.push(7); s.push(2);
  s.push(5); s.push(4);
  while not s.empty do
    write(s.pop,' ');
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: Особенности языка]

Текущая версия от 23:33, 15 января 2010

Демонстрация создания простого обобщенного класса стека на базе динамического массива

type
  Stack<T> = class
  private
    a: array of T;
    last: integer;
  public  
    constructor;
    begin
      SetLength(a,100);
      last := 0;
    end;
    procedure push(i: T);
    begin
      a[last] := i;
      last += 1;
    end;
    function pop: T;
    begin
      last -= 1;
      pop := a[last];
    end;
    function top: T;
    begin
      top := a[last-1];
    end;
    function empty: boolean;
    begin
      Result := (last=0);
    end;
  end;
  
var s: Stack<integer>;

begin
  s := new Stack<integer>;
  s.push(7); s.push(2);
  s.push(5); s.push(4);
  while not s.empty do
    write(s.pop,' ');
end.

Ссылки