Delphi建構函式和析構函式

2021-07-22 07:37:42 字數 1496 閱讀 7556



2013-08-20 16:31

287人閱讀收藏

舉報

delphi(6)

作者同類文章x

delphi的建構函式的定義是:

constructor create;

delphi的析構函式的定義是:

destructor destroy;

析構函式是不能過載的,但是建構函式是可以過載的。

建構函式在過載的時候要在後面加「overload」,例如:

constructor create;overload;

constructor create(i:integer);overload;

注意,只有兩個建構函式以上才叫過載,只有乙個就不用「overload;」了。

預設的建構函式是:constructor create; 如果有過載的話,那麼預設的建構函式後面也要加overload,正象上面的例子一樣。

delphi建構函式在類外定義在什麼位置呢?在implementation的後面。下面給出乙個例項,可以從這個例項中看出建構函式的定義:

unit unit1;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, stdctrls;

type

tform1 = class(tform)   

button1: tbutton;

procedure button1click(sender: tobject);

private

public

end;

tmyform1 = class(tform1)    //自定義乙個tmyform1類

public

constructor create; overload;  //建構函式有過載

constructor create(i: integer); overload; //過載乙個建構函式

end;

var form1: tform1;

implementation

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.

建構函式和析構函式

建構函式沒有返回值,不能被顯示的呼叫。它是在定義物件時由系統自動執行的,而且只執行一次。如果沒有定義建構函式,系統會自動生成乙個建構函式,只是這個建構函式的函式體是空,沒有引數,也不執行任何初始化的操作。帶引數的建構函式 有一種簡練,方便的寫法 建構函式的引數初始化表 box int h,int w...

析構函式和建構函式

每個物件生成的時候都要完成物件的初始化,如設定屬性的初始值。c 中規定每個類都有乙個初始值,如果沒有,系統會產生乙個預設的建構函式。這個建構函式沒有任何引數,不做任何額外的工作。但往往我們會自己寫乙個建構函式,用來進行特殊的初始化工作。這樣的話,編譯器就不會再為其生成預設的建構函式。class 類名...

建構函式和析構函式

stock hot 因為資料部分的訪問狀態是私有的,程式不能訪問資料成員。建立stock的建構函式,由於需要為stock提供3個值,因此應為建構函式提供3個引數值,程式設計師可能指向設定company成員,而其他的設定為0 使用預設引數完成 宣告如下 stock const char co,int ...