它是什么意思:String ^ name

时间:2013-10-22 14:05:03

标签: string c++-cli clr difference

这是什么意思:String^ var_name?我只能在CLR C / C ++中这样做。我知道^是异或。

有什么区别:

`string name` and `String^ name`?

4 个答案:

答案 0 :(得分:2)

它是对象操作符的句柄。它声明了一个托管指针。

它们看起来像普通指针,但你不必释放它们。

来自here

  

句柄声明符(^,发音为“hat”),修改类型说明符,表示当系统确定对象不再是声明的对象应自动删除访问。

     

使用句柄声明符声明的变量的行为类似于指向对象的指针。

答案 1 :(得分:1)

它是一个托管指针,即一个垃圾收集的指针。将它们视为正常指针,但您不必释放它们。

您必须使用gcnew明确分配这些指针,而不是new

答案 2 :(得分:0)

String ^是托管字符串。 ^运算符表示变量是托管引用。

答案 3 :(得分:0)

它实际上是托管堆对象的堆指针/句柄。它是一个没有可见类型的指针或索引。

检查这些链接。 HeapHow to Declare Handle