gpt4 book ai didi

delphi - 不创建对象实例

转载 作者:行者123 更新时间:2023-12-03 18:00:26 27 4
gpt4 key购买 nike

我想知道是否可以在不直接调用任何构造函数的情况下拥有一个对象实例。类似的东西:

var
aObject : TMyObject;
begin
aObject.MyMethod; //will cause an AV, but is it possible?
end;

编辑:

我知道静态方法,但这不是我要找的。我正在寻找一种无需显式调用即可调用构造函数的方法。

最佳答案

Delphi 的对象都是堆分配的:您不能像在 C++ 中那样简单地声明一个对象并在其上调用方法,您必须调用构造函数来分配和设置内存。但请注意,即使在 C++ 中,您这样做时实际上也是在调用构造函数!

也许你可以用一个记录而不是一个对象来逃脱惩罚?示例:

type
TMyObject = record // name intentionally left as in OP's code
procedure MyMethod;
end;

procedure TMyObject.MyMethod;
begin
// Do something
end;

// Use example:
procedure Test;
var MyObject: TMyObject; // TMyObject is a record so it is stack-allocated
begin
MyObject.MyMethod; // Works.
end;

关于delphi - 不创建对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5405862/

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