delphi的構造函數的定義是:constructor create;delphi的析構函數的定義是:destructor destroy;析構函數是不能重載的,但是構造函數是可以重載的。構造函數在重載的時候要在后面加“overload”,例如:constructor create;overload;constructor create(i:integer);overload;注意,只有兩個構造函數以上才叫重載,只有一個就不用“overload;”了。默認的構造函數是:constructor create; 如果有重載的話,那么默認的構造函數后面也要加overload,正象上面的例子一樣。delphi構造函數在類外定義在什么位置呢?在implementation的后面。下面給出一個實例,可以從這個實例中看出構造函數的定義:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyForm1 = class(TForm1) //自定義一個TMyForm1類
public
constructor Create; overload; //構造函數有重載
constructor Create(I: Integer); overload; //重載一個構造函數
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TMyForm1.Create; //這里定義構造函數
begin
inherited Create(nil); //inherited 表示調用父類的構造函數
end;
constructor TMyForm1.Create(I: Integer);
begin
inherited Create(nil);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
A: TMyForm1;
begin
A := TMyForm1.Create(1);
A.Show;
end;
end.