C++/CLI思辨錄之Object的對象布局
C++/CLI相對純C++來說,支持創建托管引用對象,托管對象由虛擬機來分配內存和管理, 程序員 可以不再擔心內存泄漏的問題。其實,說白了也就是相當于自己創建一個內存池,并且虛擬機實際上也是這樣做的。 在CLI中,所有的類都從Object派生,包括int這樣的值。
C++/CLI相對純
C++來說,支持創建托管引用對象,托管對象由虛擬機來分配內存和管理,
程序員可以不再擔心內存泄漏的問題。其實,說白了也就是相當于自己創建一個內存池,并且虛擬機實際上也是這樣做的。
在CLI中,所有的類都從Object派生,包括int這樣的值。那么Object的內部結構是怎么樣的呢?通過對vm代碼的研究,可以看到大致上的結構如下:
用戶保存一個托管對象的句柄,其實可以看作是一個指向Object的指針,在Object里面包含一個MethodTable的指針,這個 MethodTable保存了類型的信息以及一些函數,這就好比虛函數指針一樣。很多的操作都通過該指針來完成,比如Allocate(),比如Box (),UnBox()等等。緊跟在MethodTable后面的就是真實的數據了。
這個MethodTable是vm里面很核心的一個類,通過它可以完成很多的操作。
原文轉自:http://www.kjueaiud.com
- 評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
-
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|