C++ CLR中的 “^”是什么意思,代表什么?
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/27 05:21:57
C++ CLR中的 “^”是什么意思,代表什么?
同上!向上的箭头是什么意思?
int^ o = gcnew int(42);
同上!向上的箭头是什么意思?
int^ o = gcnew int(42);
![C++ CLR中的 “^”是什么意思,代表什么?](/uploads/image/z/459888-24-8.jpg?t=C%2B%2B+CLR%E4%B8%AD%E7%9A%84+%E2%80%9C%5E%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%2C%E4%BB%A3%E8%A1%A8%E4%BB%80%E4%B9%88%3F)
C++/CLI中使用gcnew关键字表示在托管堆上分配内存,并且为了与以前的指针区分,用^来替换* ,就语义上来说他们的区别大致如下:
1)gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址;
2)gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.
当然,从程序员的角度来说,管它是句柄还是什么其他的东西,总跑不掉是对某块内存地址的引用,实际上我们都可以理解成指针.
1)gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址;
2)gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.
当然,从程序员的角度来说,管它是句柄还是什么其他的东西,总跑不掉是对某块内存地址的引用,实际上我们都可以理解成指针.