testgenericinterface.out

来自「格式化源码的最新板」· OUT 代码 · 共 68 行

OUT
68
字号
program testgenericinterface;{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  imoninterface<
  t> = interface
    procedure set_valeur(const avaleur: t);
    function get_valeur: t;
    property valeur: t Read get_valeur Write set_valeur;
  end;

  imoninterfacederivee<t> = interface(imoninterface<t>)
    procedure multiplier(amulplicateur: t);
  end;

  tclassetest<t> = class(TObject, IMonInterfaceDerivee<T>)
  private
    fcompteur: t;
  public
    procedure set_valeur(const avaleur: t);
    function get_valeur: t;
    procedure multiplier(amulplicateur: t);
    procedure faitquelquechose;
  end;

  procedure tclassetest<t>.set_valeur(const avaleur: t);
  begin
    fcompteur := avaleur;
  end;

  function tclassetest<t>.get_valeur: t;
  begin
    Result := fcompteur;
  end;

  procedure tclassetest<t>.
  multiplier(amulplicateur: t);
  begin
  end;

  procedure tclassetest<t>.faitquelquechose;
  begin
    writeln(typeof(t));
  end;

var
  obj:  tclassetest<integer>;
  obj2: tclassetest<double>;
begin
  try
    obj := tclassetest<integer>.Create;
    obj.set_valeur(10);
    writeln(obj.fcompteur);
    obj.faitquelquechose;
    writeln;
    obj2 := tclassetest<double>.Create;
    obj2.set_valeur(10);
    writeln(obj2.fcompteur);
    obj2.faitquelquechose;
  except
    on e: Exception do
      writeln(e.ClassName, ': ', e.message);
  end;
  readln;
end.
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?