• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C++/CLI思辨錄之Object的對象布局

    發表于:2007-05-25來源:作者:點擊數: 標簽:思辨錄之C++objectCLI
    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永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>