程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++/CLI思辨錄之Object的對象布局

C++/CLI思辨錄之Object的對象布局

編輯:C++入門知識

  C++/CLI相對純C++來說,支持創建托管引用對象,托管對象由虛擬機來分配內存和治理,程序員可以不再擔心內存洩漏的問題。其實,說白了也就是相當於自己創建一個內存池,並且虛擬機實際上也是這樣做的。
  
  在CLI中,所有的類都從Object派生,包括int這樣的值。那麼Object的內部結構是怎麼樣的呢?通過對vm代碼的研究,可以看到大致上的結構如下:
  
  
  用戶保存一個托管對象的句柄,其實可以看作是一個指向Object的指針,在Object裡面包含一個MethodTable的指針,這個 MethodTable保存了類型的信息以及一些函數,這就好比虛函數指針一樣。很多的操作都通過該指針來完成,比如Allocate(),比如Box (),UnBox()等等。緊跟在MethodTable後面的就是真實的數據了。
  
  這個MethodTable是vm裡面很核心的一個類,通過它可以完成很多的操作。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved