如何返回一个VCL对象?在线等待!

yuanhen 2003-06-26 11:16:23
我知道所有的VCL对象都必须分配在堆上,怎么才能返回一VCL对象呢?
在函数返回的时候应该会产生一个临时对象,这临时对象应该是在栈上,所以return语句不能通过编译,怎么改才能返回一个VCL对象????
当然不能用变参的方式!!!!
TIpProperty __fastcall TIpHelper::GetIpAddress()
{
TIpProperty *ip = new TIpProperty;
ip->AsDoubleWord = FAdapterInfo->IpAddressList.Context;
return *ip;
}
...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanhen 2003-06-26
  • 打赏
  • 举报
回复


浪费了我30分,可惜!

yuanhen 2003-06-26
  • 打赏
  • 举报
回复


是我的问题,老糊涂了!

好像返回一个对象是不可能的,只能返回指针或者是引用。

我已经找到解决的方法了。 不过还是感谢pp616(傻小子)。
yuanhen 2003-06-26
  • 打赏
  • 举报
回复

不对啊,ip只在函数内有效,return ip就是返回一个临时地址啊!

pp616 2003-06-26
  • 打赏
  • 举报
回复
是你的代码的问题。
修改代码为
TIpProperty *__fastcall TIpHelper::GetIpAddress()
yuanhen 2003-06-26
  • 打赏
  • 举报
回复


补充:在我这个class(TIpHelper)的内部没有TIpProperty对象。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧