青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-60  評論-111  文章-0  trackbacks-0

一個類實例的生成需要經過對象內存分配、內存初始化、設置對象執行框架三個步驟。

編譯器首先調用System._ClassCreate進行對象內存分配、內存初始化的工作。而System._ClassCreate調用TObject類的虛方法NewInstance建立對象的實例空間,繼承類通常不需要重載TObject.NewInstance,除非你使用自己的內存管理器,因此缺省是調用TObject.NewInstanceTObject.NewInstance方法將根據編譯器在類信息數據中初始化的對象實例尺寸(TObject.InstanceSize),調用系統缺省的MemoryManager.GetMem過程為該對象在堆(Heap)中分配內存,然后調用TObject.InitInstance方法將分配的空間初始化。InitInstance方法首先將對象空間的頭4個字節初始化為指向對象類的VMT的指針,然后將其余的空間清零。如果類中還設計了接口,它還要初始化接口表格(Interface Table)。

當對象實例在內存中分配且初始化后,開始設置執行框架。所謂設置執行框架就是執行你在Create方法里真正寫的代碼。設置執行框架的規矩是先設置基類的框架,然后再設置繼承類的,通常用Inherited關鍵字來實現。

上述工作都做完后,編譯器還要調用System._AfterConstruction讓你有最后一次機會進行一些事務的處理工作。System._AfterConstruction是調用虛方法AfterConstruction實現的。在TObjectAfterConstruction中只是個Place Holder,你很少需要重載這個方法,重載這個方法通常只是為了與C++ Builder對象模型兼容。

最后,編譯器返回對象實例數據的地址指針。

對象釋放服務其實就是對象創建服務的逆過程,可以認為對象釋放服務就是回收對象在創建過程中分配的資源。

當編譯器遇到destructor關鍵字通常會這樣編碼:首先調用System._BeforeDestruction,而System._BeforeDestruction繼而調用虛方法BeforeDestruction,在TObjectBeforeDestruction中只是個Place Holder,你很少需要重載這個方法,重載這個方法通常只是為了與C++ Builder對象模型兼容。

這之后,編譯器調用你在Destroy中真正寫的代碼,如果當前你在撰寫的類是繼承鏈上的一員,不要忘記通過inherited調用父類的析構函數以釋放父類分配的資源,但規矩是,先釋放當前類的資源,然后再調用父類的,這和對象創建服務中設置對象執行框架的順序恰好相反。

當前類及繼承鏈中所有類中分配的資源全部釋放后,最后執行的就是釋放掉對象本身及一些特別數據類型占用的內存空間。編譯器調用System._ClassDestroy來完成這件工作。System._ClassDestroy繼而調用虛方法FreeInstance,繼承類通常不需要重載TObject.FreeInstance,除非你使用自己的內存管理器,因此缺省是調用TObject.FreeInstanceTObject.FreeInstance繼而調用TObject.CleanupInstance完成對于字符串數組、寬字符串數組、Variant、未定義類型數組、記錄、接口和動態數組這些特別數據類型占用資源的釋放[4],最后TObject.FreeInstance調用MemoryManager.FreeMem釋放對象本身占用的內存空間。

很有意思的是,對象釋放服務與對象創建服務所用方法、函數是一一對應的,是不是有一種很整齊的感覺?

對象創建服務

對象釋放服務

System._ClassCreate

System._ClassDestroy

System._AfterConstruction

System._BeforeDestruction

TObject.AfterConstruction(virtual)

TObject.BeforeDestruction(virtual)

TObject.NewInstance(virtual)

TObject.FreeInstance(virtual)

TObject.InitInstance

TObject.CleanupInstance

MemoryManager.GetMem

MemoryManager.FreeMem

還有一點要注意,通常我們不會直接調用 Destroy 來釋放對象,而是調用 TObject.Free,它會在釋放對象之前檢查對象引用是否為 nil

posted on 2011-02-06 11:36 shaker(太子) 閱讀(2224) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲男人的天堂在线| 亚洲国产女人aaa毛片在线| 亚洲人成免费| 久久综合成人精品亚洲另类欧美| 国产午夜精品视频| 久久综合狠狠综合久久综青草| 欧美一区二区日韩| 精品电影一区| 欧美国产专区| 欧美人与禽猛交乱配视频| 夜夜嗨av一区二区三区网页| 日韩午夜中文字幕| 国产精品一区二区黑丝| 久久久久成人精品| 久久视频这里只有精品| 久久免费国产| 欧美精品情趣视频| 久久夜色精品亚洲噜噜国产mv | 久久久久久久久岛国免费| 亚洲欧美在线免费观看| 欧美日韩免费高清| 91久久在线播放| 亚洲精品在线视频| 欧美激情一区二区三区高清视频| 欧美freesex8一10精品| 黄色影院成人| 久久久精彩视频| 狼人天天伊人久久| 精品91免费| 久久综合精品一区| 欧美69视频| 最新国产成人在线观看| 快射av在线播放一区| 欧美mv日韩mv国产网站| 亚洲第一黄色网| 蜜臀久久99精品久久久久久9 | 亚洲国产精品女人久久久| 一区视频在线看| 久久漫画官网| 欧美成人综合| 亚洲国产经典视频| 嫩草成人www欧美| 亚洲精品你懂的| 亚洲激情自拍| 欧美日韩一区在线| 亚洲美女诱惑| 欧美视频在线观看| 亚洲综合日本| 久久只精品国产| 亚洲乱码国产乱码精品精可以看 | 免费在线亚洲| 最新国产拍偷乱拍精品 | 在线免费观看日本欧美| 欧美a级在线| 99re8这里有精品热视频免费| 亚洲主播在线观看| 国模套图日韩精品一区二区| 美日韩在线观看| 一本色道久久加勒比88综合| 午夜亚洲性色福利视频| 在线观看一区二区精品视频| 欧美激情导航| 欧美一区二区三区喷汁尤物| 亚洲福利视频在线| 西瓜成人精品人成网站| 亚洲高清久久久| 欧美午夜性色大片在线观看| 久久精品中文字幕免费mv| 亚洲精品欧美日韩专区| 久久久久这里只有精品| 99pao成人国产永久免费视频| 国产精品亚洲欧美| 免费在线观看日韩欧美| 亚洲欧美日本日韩| 最新中文字幕一区二区三区| 午夜精品一区二区在线观看| 亚洲国产小视频| 国产欧美一区二区色老头| 欧美久久电影| 久久久久久久一区| 亚洲私人影院| 91久久国产精品91久久性色| 欧美专区亚洲专区| 美日韩精品免费| 亚洲国产精品va在线观看黑人| 美国十次成人| 亚洲麻豆一区| 欧美中在线观看| 国产一区二区精品| 久久网站热最新地址| 亚洲国产欧美在线| 亚洲永久精品大片| 国产精品区一区| 久久精品国产99精品国产亚洲性色| 久久一区视频| 欧美日韩在线免费| 久久精品国产免费| 午夜老司机精品| 夜夜嗨av色一区二区不卡| 最新高清无码专区| 欧美成人在线免费观看| 久久综合久久美利坚合众国| 欧美在线一二三四区| 葵司免费一区二区三区四区五区| 欧美在线精品免播放器视频| 亚洲综合大片69999| 中国女人久久久| 日韩一级免费| 99精品视频免费观看视频| 日韩午夜在线播放| 99精品黄色片免费大全| 99国产精品久久久久老师| 99精品国产热久久91蜜凸| 亚洲理伦电影| 日韩一级二级三级| 欧美日韩第一区| 久久精品国产清高在天天线| 一本色道久久综合亚洲91| 另类天堂视频在线观看| 中国亚洲黄色| 亚洲日韩中文字幕在线播放| 国产欧美日韩精品专区| 欧美人成在线视频| 久久久久免费视频| 亚洲一区二区久久| 亚洲乱码视频| 亚洲欧洲精品一区二区精品久久久 | 久久青草福利网站| 亚洲伊人网站| 亚洲精品久久久久中文字幕欢迎你 | 久久全球大尺度高清视频| 亚洲天堂av图片| 亚洲免费观看视频| 在线欧美日韩| 韩国av一区| 国产一区二区三区在线观看视频| 欧美视频一区二区| 欧美日韩精品| 欧美日韩一区综合| 欧美理论电影在线播放| 欧美xx视频| 欧美电影专区| 欧美成人午夜免费视在线看片| 久久美女性网| 免播放器亚洲一区| 模特精品在线| 欧美大学生性色视频| 欧美jizzhd精品欧美巨大免费| 久久久久九九视频| 久久久久国产精品一区三寸| 香蕉久久夜色精品国产| 欧美一级片一区| 欧美一级一区| 久久欧美肥婆一二区| 牛夜精品久久久久久久99黑人| 久久五月天婷婷| 欧美激情精品久久久久久变态 | 欧美一区亚洲一区| 欧美中文字幕视频| 亚洲精品网站在线播放gif| 欧美一区二区在线观看| 欧美日韩国产页| 亚洲韩国精品一区| 久久成人综合网| 在线亚洲观看| 欧美国产日本韩| 亚洲午夜精品一区二区三区他趣| 久久亚洲精品一区| 国产欧美一区二区色老头| 在线亚洲免费| 亚洲精品精选| 开心色5月久久精品| 国模大胆一区二区三区| 午夜精品视频在线观看一区二区 | 日韩视频一区二区| 久久精品一级爱片| 国产精品一区在线观看| 亚洲一区二区久久| 亚洲欧洲在线一区| 久久综合色8888| 亚洲免费成人| 久久av老司机精品网站导航| 欧美超级免费视 在线| 国产精品久久久久久久久搜平片| 国产一区二区精品久久| 99re6热只有精品免费观看| 久久狠狠久久综合桃花| 亚洲高清久久久| 亚洲欧美日韩综合国产aⅴ| 免费在线观看日韩欧美| 国产精品亚洲精品| 日韩一区二区高清| 久久性天堂网| 99精品国产高清一区二区| 久久久久久久久综合| 国产精品国产自产拍高清av| 亚洲欧洲精品天堂一级| 欧美在线视频一区二区三区| 亚洲人成网站999久久久综合| 亚洲欧美成人在线|