我用C++Builder一年多了。熟悉win32汇编,可就是对Delhpi的代码总是理解不上去啊。
问题1:
var
TmpRegistry : TRegIniFile;
TapiProcesses : TStringList;
begin
。。
TmpRegistry := TRegIniFile.Create('SOFTWARE\TurboPower\APRO\TAPI'); I
...
end
在上面的代码段中根据汇编窗口的显示,第一行就调用构造函数了,可是最后赋值那行又调用了一次,这不是调用了两次构造函数吗?是不是分配了两次的内存?????问题2:上面的代码段中,如何在申明的时候就赋初值啊?
就好比在CB中TRegIniFile * p=new TRegIniFile("aaaaaaaa");
如何在Delphi中实现??????谢谢诸位解答。
问题1:
var
TmpRegistry : TRegIniFile;
TapiProcesses : TStringList;
begin
。。
TmpRegistry := TRegIniFile.Create('SOFTWARE\TurboPower\APRO\TAPI'); I
...
end
在上面的代码段中根据汇编窗口的显示,第一行就调用构造函数了,可是最后赋值那行又调用了一次,这不是调用了两次构造函数吗?是不是分配了两次的内存?????问题2:上面的代码段中,如何在申明的时候就赋初值啊?
就好比在CB中TRegIniFile * p=new TRegIniFile("aaaaaaaa");
如何在Delphi中实现??????谢谢诸位解答。
var
TmpRegistry : TRegIniFile;
相当于
TRegIniFile* TmpRegistry;
而不是
TRegIniFile TmpRegistry;所以不会构造两次。
2,Delphi不能申明的时候就构造对象。
Delphi 的申明变量和构造变量必须分开
申明在 var 段,
初始化和使用在函数体的
beginend
之间