词条 | 跟踪句柄 |
释义 | 与标准C++可以自己维护堆不同,因为C++/CLI中动态分配的内存是由CLR来维护的,当不需要堆时,CLR自动将其删除并回收,同时自动压缩内存堆以免产生不必要的内存碎片。由于这种垃圾回收机制会改变堆中对象的地址,如果使用指针,则指针将不再有效,因此不能在CLR堆中使用普通C++指针。为此,CLR提供了跟踪句柄和跟踪引用,从来安全地访问堆中对象。? 在声明一个跟踪句柄时,可以将符号 “^” 添加到类型名称后面用于指定该类型的句柄变量。当声明某个句柄时,系统会自动将该句柄初始化为空值,以表示该句柄未引用任何对象。例如: String^ name; //声明名称为name的Sting类型的句柄,初始值为空 String^ word = nullptr;//声明名称为word的句柄,并显示初始化为空(关键字nullptr显示地将跟踪句柄初始化为空值) String^ saying = L"Hello world!";//声明名称为saying的句柄,并指定了初始化值 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。