// 定議一個類,就一個方法
type
TClass1 = class
public
procedure Test();
end;// 實現這個方法,顯示一個 messageBox
procedure TClass1.Test;
begin
ShowMessage('fdsad');
end;// 我這樣調用procedure TForm1.Button4Click(Sender: TObject);
var
obj : TClass1;
begin
obj := TClass1.Create;
obj := nil; // <--- 注意這裡。我把 obj 設成 nil 了
obj.Test;
obj.Free;
end;這個代碼會出錯嗎????
一開始我也認為鐵定出錯。但後來在 Delphi 時寫出以上代碼。運行。居然沒錯。 ShowMessage 也正常出現了
為什麼會這樣?????
type
TClass1 = class
public
procedure Test();
end;// 實現這個方法,顯示一個 messageBox
procedure TClass1.Test;
begin
ShowMessage('fdsad');
end;// 我這樣調用procedure TForm1.Button4Click(Sender: TObject);
var
obj : TClass1;
begin
obj := TClass1.Create;
obj := nil; // <--- 注意這裡。我把 obj 設成 nil 了
obj.Test;
obj.Free;
end;這個代碼會出錯嗎????
一開始我也認為鐵定出錯。但後來在 Delphi 時寫出以上代碼。運行。居然沒錯。 ShowMessage 也正常出現了
為什麼會這樣?????
調用對象的方法是, eax 放實例指針,而直接用 call TClass.test()而 TClass.Test 正好沒有用到 實例指針,所以不會出錯