我已编辑此问题以使自己清楚。 我的问题是。
如果我们定义
字符串a
我们可以将字符定义为[],
但是如果我们定义String ^ a
a []无法定义。
如果两个都是字符串,为什么没有定义[]。
答案 0 :(得分:0)
String ^是底层字符串的句柄。这些很像C ++中的指针/引用,除了它们为垃圾收集器提供的帮助。这意味着您不需要为C ++中的指针删除内存。
答案 1 :(得分:0)
Microsoft的托管C ++与您在常用C ++中习惯的标准定义完全不同。一个主要的区别是它使用托管指针处理内存分配/释放的方式。您所指的^
称为 hat operator ,它用于表示在运行时自动管理的内存状态指针。这意味着您不必使用delete
释放先前为其分配的内存。
虽然帽子操作员的有用性/效率存在争议,但在Visual C ++ .NET的情况下,它仍然是管理内存的标准方法。