跟蹤句柄

Strin Strin Strin

與標準C++可以自己維護堆不同,因為C++/CLI中動態分配的記憶體是由CLR來維護的,當不需要堆時,CLR自動將其刪除並回收,同時自動壓縮記憶體堆以免產生不必要的記憶體碎片。由於這種垃圾回收機制會改變堆中對象的地址,如果使用指針,則指針將不再有效,因此不能在CLR堆中使用普通C++指針。為此,CLR提供了跟蹤句柄跟蹤引用,從來安全地訪問堆中對象。?
在聲明一個跟蹤句柄時,可以將符號 “^” 添加到類型名稱後面用於指定該類型的句柄變數。當聲明某個句柄時,系統會自動將該句柄初始化為空值,以表示該句柄未引用任何對象。例如:
String^ name; //聲明名稱為name的Sting類型的句柄,初始值為空
String^ word = nullptr;//聲明名稱為word的句柄,並顯示初始化為空(關鍵字nullptr顯示地將跟蹤句柄初始化為空值)
String^ saying = L"Hello world!";//聲明名稱為saying的句柄,並指定了初始化值

相關詞條

熱門詞條

聯絡我們