Delphi建構函式和解構函式

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.

本篇發表於 未分類。將永久鍊結加入書籤。

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>