能用ANSISTRING的指针向函数传参么? ( 积分: 50 )

  • 主题发起人 主题发起人 zob
  • 开始时间 开始时间
Z

zob

Unregistered / Unconfirmed
GUEST, unregistred user!
我不太明白ANSITRING在BCB里和DELPHI的区别,我现在假设认为ANSISTRING的一个实例是个对象,然后我取它的地址指针,把它传递到一个函数中去 FUN(ANSISTRING&
A);想在函数中改变传递到含数中的ANSISTRING的值,这样当函数结束时我能得到自己处理过的结果。不知道该怎么声明和传递。如果有用错或者对ANSISTRING 理解错的地方希望大家指正,谢谢了!
 
我不太明白ANSITRING在BCB里和DELPHI的区别,我现在假设认为ANSISTRING的一个实例是个对象,然后我取它的地址指针,把它传递到一个函数中去 FUN(ANSISTRING&
A);想在函数中改变传递到含数中的ANSISTRING的值,这样当函数结束时我能得到自己处理过的结果。不知道该怎么声明和传递。如果有用错或者对ANSISTRING 理解错的地方希望大家指正,谢谢了!
 
第一种写法
AnsiString str;
get_value( &str);
void get_value( AnsiString *AResult)
{
AResult = "hello";
}
第二种:
AnsiString str;
get_value( str);
void get_value( AnsiString &AResult)
{
AResult = "hello";
}
 
sorry,第一种写错一点,AResult = "hello";为*AResult = "hello";
 
没必要用指针方式。AnsiString本身就是一个Copy-on_Write的类,传指针和实例的开销差不了多大。但是不容易出错。
 
后退
顶部