gpt4 book ai didi

delphi - TObject 和 NIL Delphi 中的析构函数类

转载 作者:行者123 更新时间:2023-12-03 18:57:33 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
Destructor class in TObject and NIL Delphi



我还有一个问题要给你们

我有一堂Ta

当我按下 Button1 时,它正在执行下一个代码
    var a,b:TA;
begin
a:=Ta.Create;
b:=a;
a.i:=30;

FreeAndNil(a);

if (a = NIL) then ShowMessage("a is nil");
if (b=NIL) then ShowMessage("b is nil");

end;

这两个实例都被破坏了机器人,只有一个是 NIL。我将如何写以知道 b 是否为空(已销毁)。我应该如何更改代码以便它应该写给我
a is nil
b is nil

所以我的问题是我应该怎么做才能知道指针 B 的位置是否是一个被破坏的实例

最佳答案

您可以声明b: Ta absolute a;这允许您指示编译器处理 b变量存在于相同的内存位置,有效地将一个叠加在另一个之上。

procedure TForm1.Button1Click(Sender: TObject);
var a: Ta;
b: Ta absolute a;
begin
a := Ta.Create;
b := a;
a.i := 1;
FreeAndNil(a);
if (a = NIL) then ShowMessage('a is nil');
if (b = NIL) then ShowMessage('b is nil');
end;

这是一篇有用的文章: Absolute (for) Beginners .

关于delphi - TObject 和 NIL Delphi 中的析构函数类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com