(zqw0117进来看看)一个CB++的函数定义(const String& sData)如何用Delphi来声明? ( 积分: 50 )

L

lixin38

Unregistered / Unconfirmed
GUEST, unregistred user!
C++B中定义如下int __fastcall THDLC::GetAttGuardRecord(const String&amp
sData)
Delphi中对应的又是什么呢(因C++B中参数带了一个&)?
 
C++B中定义如下int __fastcall THDLC::GetAttGuardRecord(const String&amp
sData)
Delphi中对应的又是什么呢(因C++B中参数带了一个&)?
 
&在C++里面是引用调用的意思,既然是引用调用,在GetAttGuardRecord里面就可能改变它的值.如果不引用调用,那么在进入函数的时候,将会复制一份sData的副本.所以上面的声明只是为了提高程序效率.对应delphi应该是
GetAttGuarRecord(const sData: string)
呵呵,不知我说的对不对,好久没弄C++了,可能有东西记得不清楚,如果错了,请指正.
 
to zqw0117:
谢谢你的答复!在CB中我把&去掉后得到的结果是不一样的!
 
哦?那就不太清楚了.呵呵,见笑了.
 
to zqw0117:
老兄一个小小事情需要你帮忙,搞了好几天了,头都痛死了.
怎么联系你(lgjxin@tom.com)谢谢!
 
今天刚刚查阅了C++教程,我上面说的是对的,&是引用调用,前面加const是希望编译器判断不要在函数体内修改引用参数(因为是引用,所以如果在内部修改,将导致值传到外部).Delphi的const也有传值意味,所以,当编译器看到const声明的字符串时,传入的就是string的地址(类似C++的引用传入).所以我说的就是对的.

另外,我的邮箱是
zqw0117@sina.com
有事情请直接联系.
 
已發送郵件給你,請查收,謝謝!
 
您的邮件没带附件.
 
已重發給你,謝謝!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部