interface
uses
  Windows, Messages, SysUtils, ADODB, DB, gMyPubConstDef;type
  TDBConnector = class(TObject)
  private
    FConnected: Boolean;
    FConnection: TADOConnection;
  protected
    constructor CreateInstance;
     class function AccessInstance(Request: Integer): TDBConnector;
  public
    constructor Create;    
    destructor Destroy; override;    procedure EndConnect;
    class function Instance: TDBConnector;
    class procedure ReleaseInstance;
    procedure StartConnect; virtual;
    property Connected: Boolean read FConnected;
    property Connection: TADOConnection read FConnection write FConnection;
  end;
我的问题1:
蓝色字体的class放在function procedure 前面有什么特殊的含义,我通常是不加的。
问题2:
关于构造器constructor的命名规则;关于构造器销毁器destructor,是不是里面都要写inherited关键字?

解决方案 »

  1.   

    加CLASS是静态函数,和C++的STATIC关键字的作用字一样
    构造函数里加inherited,就会调用父类的构造函数,
      

  2.   

    使用CLASS定义的是类方法,和C++中的静态方法一样,可以不创建实例而直接引用类方法,如TDBConnector.AccessInstance(0);
    inherited是调用父类中同名的方法,如果你在自己写的类的构造方法中想先执行一些语句后,再执行父类的构造方法,可以这样写:
    procedure Create;
    begin
      //do something
      inherited;
      //do something
    end;