與老的語法主要的混淆是我們習慣於使用*符號來宣告拖管引用或非拖管指標,在c++/cli裡微軟引入了控制代碼的概念。
void _tmain()
^符號代表乙個託管物件(宣告時看上去象個帽子),按照cli的規定,控制代碼代表乙個拖管物件的引用。控制代碼在cli中是新的語法,相當於c++中的-gc指標。控制代碼與指標不再混淆,在本質上兩者完全不同。
控制代碼與指標是怎樣區分開來的?
1、指標宣告時使用*符號,而控制代碼使用^符號。
2、控制代碼是針對拖管堆上物件的拖管引用,而指標僅僅指向記憶體中的乙個位址。
3、指標很穩定,gc迴圈不會影響到它;控制代碼在基於gc或記憶體緊張的情況下,可以指向不同的記憶體位置。
4、對於指標,程式開發人員必須"顯式"地刪除,否則會面臨洩露的危險,而對於控制代碼,是否進行顯式刪除則完全根據程式人員的愛好了。
5、控制代碼一定要指向乙個具體的型別,即所謂的型別安全性,而指標明顯不是這樣,你決不可以將乙個控制代碼指向void^型別。
6、正如new操作符返回乙個指標一樣,gcnew返回乙個控制代碼。
控制代碼的概念
所謂控制代碼就是乙個 long型的資料。控制代碼是windows 用於表示應用程式建立出來的物件的唯一的整數。windows 使用各種各樣的控制代碼來標識應用程式例項,視窗控制,位圖,gdi物件等等。windows 控制代碼有點像 c語言中的檔案控制代碼。從上面的定義我們可以看到,控制代碼是乙個識別...
講解易語言控制代碼的概念
以下我們給大家詳細講述了易語言中的控制代碼的概念和含義 這是作業系統裡的乙個概念,控制代碼是wondows用來標識被應用程式所建立或使用的物件的唯一整數,windows使用各種各樣的控制代碼標識諸如應用程式例項,視窗,控制,位圖,gdi物件等等。windows控制代碼有點象c語言中的檔案控制代碼。從...
從控制代碼的概念再看分層設計
幾個層次問題,首先物理記憶體和虛擬記憶體,作業系統管理物理記憶體,而使用者程序使用虛擬記憶體,作業系統呈現給使用者程序的是連續的虛擬記憶體但是不一定連續的物理記憶體,物理記憶體隨時在變化,但是對於使用者程序來說其虛擬記憶體位址是不變的 其次是指標和控制代碼,作業系統為了向使用者空間提供若干臺虛擬機器...