类引用(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.