Обобщенные классы

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

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

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.

Ссылки