请看下面一段代码:unit ExceptHandler;interfaceuses
  SysUtils, ExceptLog, GAEAAppExceptions, GGCException;type
  TExceptHandler = class(TObject)
  private
    class var Handler: TExceptHandler;    class procedure Init;
    class procedure Done;
  private
    function  ParseException(E: Exception): Boolean;
    function  TrException(E: Exception): Boolean;
    procedure LogToFile(const AFileName, AMessage: string);
    procedure SaveExcept(AExcept: TExceptInfo);
  protected
    procedure DoShowExcept(AExcept: TExceptInfo; var AHandle: Boolean);
  end;
var
  gExceptHandler: stirng;
implementation
上段代码中,class var 和class procedure是什么意思?
与普通的procedure有何区别。
请详细解释一下,谢谢。能从内存上进行分析更好。

解决方案 »

  1.   

    CLASS var 相当于类变量  class procedure 类方法可以对应java里的static 调用时TExceptHandler.Init; 这样调用普通的方法是对象级的  一般来说类变量 是控制级的变量 ,比如控制实例格式,控制类的一些指定属性。就内存分配而言 和全局变量一样 分配在堆上不过delphi很少有人用类方法,因为完全可以用全局变量代替
      

  2.   

    class procedure:类方法,不用创建实例就可以直接调用,但类方法里面不能引用到实例变量,会编译不通过。
      

  3.   

    因为delphi里没有static,所以这是个替代方案