返回信息流比如:System::String ^System::String::Format(System::String ^,System::Object ^) 中 ^ 的含义。
这是一条镜像帖。来源:北邮人论坛 / cpp / #39973同步于 2010/6/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]VC++2008中“^”的含义
horikita
2010/6/2镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
好像是指这个变量是在托管堆上申请的,而没有^符号的变量是在普通栈里面申请的,二者的内存管理方法不一样,申请内存的关键字也不一样。
带^用gcnew关键字,不带的用new关键字
【 在 OdieHappy 的大作中提到: 】
: 好像是指这个变量是在托管堆上申请的,而没有^符号的变量是在普通栈里面申请的,二者的内存管理方法不一样,申请内存的关键字也不一样。
: 带^用gcnew关键字,不带的用new关键字
谢谢酒剑仙前辈的帮助~
我还是没有明白..
两者仅仅是在内存的位置不同的话, 那么为何使用起来也不同: 有一些地方必须用带^的. 并且, 两者之间还不能相互转换...
【 在 horikita 的大作中提到: 】
: 谢谢酒剑仙前辈的帮助~
: 我还是没有明白..
: 两者仅仅是在内存的位置不同的话, 那么为何使用起来也不同: 有一些地方必须用带^的. 并且, 两者之间还不能相互转换...
一个是垃圾收集机制 一个要自主释放
【 在 horikita 的大作中提到: 】
: 谢谢冻袂条前辈的教导。
: 可是还是不甚明白。。[em2]
所谓垃圾收集机制就是说 你申请的内存不需要你自己释放 因为系统会负责释放你所分配的内存 如果你那内存是不用的话 就像java把 ,你只看过new 却看不到delete的原因
谢谢前辈~ 懂了一些~
有点不明白的是: 我先定义了一个类,其中一个返回值为System::String^的方法。在后面一个类的某个事件时调用了这个方法,在编译链接的时候,报错在某个.obj里面已经有了这个方法,从而编译出错。另外,怎么改这个方法的名称都会报同样的错误。
【 在 jmpesp (冻袂条~~ ) 的大作中提到: 】
: 所谓垃圾收集机制就是说 你申请的内存不需要你自己释放 因为系统会负责释放你所分配的内存 如果你那内存是不用的话 就像java把 ,你只看过new 却看不到delete的原因
不明白就别直接搞C++/cli呀。。
【 在 horikita (真希ちゃんのことが大好き) 的大作中提到: 】
: 比如:System::String ^System::String::Format(System::String ^,System::Object ^) 中 ^ 的含义。
【 在 horikita 的大作中提到: 】
: 谢谢前辈~ 懂了一些~
: 有点不明白的是: 我先定义了一个类,其中一个返回值为System::String^的方法。在后面一个类的某个事件时调用了这个方法,在编译链接的时候,报错在某个.obj里面已经有了这个方法,从而编译出错。另外,怎么改这个方法的名称都会报同样的错误。
对托管c++不熟悉 借楼同求高手
^就相当于是指针,只不过是基于托管对象的,你可以把它等同于*就ok了,以前的 string * p= new string() 写成 string^ p =gcnew string()就可以了。