代码改变世界

Delphi class of (类引用, 指向类信息的指针)

2011-12-21 22:27  一人游走  阅读(1503)  评论(0编辑  收藏  举报

类引用(TClassACls)就是类(TClassA)的类型,可以声明一个类引用变量(T)并赋给它一个子类(TClassB),可以通过这个变量创建对象的实例(T.Create)

代码:

unit Unit1;
{
  * created by HouSoft
  * 2011/12/21
  * www.yryz.net
}
interface
uses
  Sysutils;

type
  // 定义TClassA 的引用
  TClassACls = class of TClassA;

  TClassA = class
    procedure Test; virtual; abstract;
  end;

  TClassB = class(TClassA)
    procedure Test; override;
  end;
implementation

{ TClassB }

procedure TClassB.Test;
begin
  WriteLn(ClassName);
end;

procedure Test;
var
  T                 : TClassACls;
  TC                : TClassA;
begin
  T := TClassB;                         //类引用
  TC := T.Create;

  WriteLn(TC.ClassName);                // 输出 TClassB
  TC.Test;                              // 输出 TClassB

  Sleep(MaxInt);
end;

initialization
  Test;

end.