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