当前位置:  开发笔记 > 编程语言 > 正文

插入符号('^')在C++/CLI中的含义是什么?

如何解决《插入符号('^')在C++/CLI中的含义是什么?》经验,为你挑选了4个好方法。

我刚刚遇到这个代码,一些谷歌搜索没有解释这个神秘的(对我来说)语法.

Hashtable^ tempHash = gcnew Hashtable(iterators_);

IDictionaryEnumerator^ enumerator = tempHash->GetEnumerator();

插入物的意思是什么?(这gcnew对我来说也是新的,我在这里问过这个问题.)



1> Rob Walker..:

这是C++/CLI,插入符号是*(指针)的托管等效物,在C++/CLI术语中称为'句柄'到"引用类型"(因为您仍然可以使用非托管指针).

(感谢Aardvark指出了更好的术语.)


@Owen,是的,它有管理的通讯员"%".
(我猜"非托管引用")语法"&"是否仍然存在于C++/CLI中?

2> 小智..:
// here normal pointer
P* ptr = new P; // usual pointer allocated on heap
P& nat = *ptr; // object on heap bind to native object

//.. here CLI managed 
MO^ mngd = gcnew MO; // allocate on CLI heap
MO% rr = *mngd; // object on CLI heap reference to gc-lvalue

在一般情况下,加标点%^因为加标点&*.在C++中,一元运算&符在C++/CLI中是一元运算%符.

虽然&ptr收益率P*,%mngd收益率MO^.



3> Franci Penov..:

这意味着这是对托管对象与常规C++指针的引用.这些引用后面的对象由运行时管理,可以在内存中重新定位.它们也是自动垃圾收集的.



4> Joel Coehoor..:

分配托管内存时,垃圾收集器可以移动该内存.^运算符是托管内存的指针,即使垃圾收集器移动它指向的对象,它也会继续指向正确的位置.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有