我想创建一个指向名为“CustomParam”类,所以我宣布创建新指针到
pCustomParam = ^CustomParam
的Class CustomParam有下列类变量,应在构造函数中设置为0:
var keyArray: array of String;
var valueArray: array of String;
var paramArray: array of pCustomParam;
var isParamArray: array of Boolean;
var size: Integer;
的构造看起来像这样:
constructor CustomParam.create;
begin
inherited;
size:= 0;
SetLength(keyArray,0);
SetLength(valueArray,0);
SetLength(isParamArray,0);
SetLength(paramArray,0);
end;
,并宣称这样的:
constructor create; overload;
现在我尝试用“新”之类下面创建指针CustomParam:
var pointerToCustomParam: pCustomParam;
begin
new(pointerToCustomParam);
但不要妄下CustomParam类的构造函数。如果我像下面这样手动调用构造函数:
pointerToCustomParam^.create;
该应用程序将在SetLength命令上崩溃。
我注意到,变量“pointerToCustomParam”在“new”函数后直接得到了垃圾内容。
我希望你能帮助我和信息足够:)
谢谢:)
值得注意,只是要说教,与这样的指针的操作现场,对于一般情况下,完全没有必要的,并且如果我猜想,对症的压印C/C++设计模式到的Delphi这是无效的。有,当然,有效的使用情况为对象的指针,但我没有看到它在开放问题的情况下。如果一个只需要创建一个对象,并将其分配给一个变量或字段,则直接的方法是足够的和优选的,我想。 – 2013-03-19 12:06:23