以前很多兄弟说,在一个过程中建立的临时对象,在过程结束时,会自动释放,有谁测试过
类似下面的结构的程序?我觉得过程中建立的临时对象是不被自动释放的哦!!嘿嘿,其实Delphi也有点怪怪的哦!!unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;type
TMyTest = class
public
destructor Destroy; override;
end; TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TMyTest }destructor TMyTest.Destroy;
begin
ShowMessage('玩完!');
inherited;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
var
m: TMyTest;
begin
m:=TMyTest.Create;
//试一下,把下面那条语句去掉,刚建立的对象是否被自动释放?
m.Free;
end;end.
类似下面的结构的程序?我觉得过程中建立的临时对象是不被自动释放的哦!!嘿嘿,其实Delphi也有点怪怪的哦!!unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;type
TMyTest = class
public
destructor Destroy; override;
end; TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TMyTest }destructor TMyTest.Destroy;
begin
ShowMessage('玩完!');
inherited;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
var
m: TMyTest;
begin
m:=TMyTest.Create;
//试一下,把下面那条语句去掉,刚建立的对象是否被自动释放?
m.Free;
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货