freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi接口和編程兩大陷阱(存儲(chǔ)版)

  

【正文】 方法。除非特殊用途,不建議使用。什么是奮斗?奮斗就是每天很難,可一年一年卻越來(lái)越容易。寧可累死在路上,也不能閑死在家里!寧可去碰壁,也不能面壁。 接口引用的置nil會(huì)調(diào)用接口的_Release,所以有可能會(huì)把對(duì)象給釋放掉,我當(dāng)時(shí)可是被它嚇了一跳,多虧我沒用過它。   對(duì)于沒有使用Tlist來(lái)管理的接口引用。 或者 Obj2 := 。好像很好用,但是編譯器釋放它時(shí)還是會(huì)對(duì)每個(gè)元素置為nil的,而且是作為接口,仍然有非法地址訪問錯(cuò)誤的可能??紤]使用什么容器呢?array?TList?TInterfaceList? 首先想到肯定是TInterfaceList了,因?yàn)槲覀兪且菁{的就是接口。 TComposite = class(TComponent, I1) Private interList: TXContainer。 Intf1 := nil。 OBJ2 := 。 try Intf1 := OBJ2。 IInterface(P)._Release。 var P: Pointer。 function _Release: Integer。 //運(yùn)行期非法地址訪問錯(cuò)誤。如果把對(duì)象轉(zhuǎn)為接口再轉(zhuǎn)回來(lái)也會(huì)有問題。 Intf1: I1。   (2) 當(dāng)把一個(gè)對(duì)象變量賦給一個(gè)接口變量,在把這個(gè)接口變量賦還給對(duì)象變量時(shí),這個(gè)對(duì)象變量的地址已經(jīng)變了,也就是不再是原來(lái)的對(duì)象了,而是指向一個(gè)錯(cuò)誤的地址。 TC1 = class ATT1: Integer。 OBJ2 := 。 Intf1 := OBJ2。但是Delphi卻又一次打擊了我的常識(shí)(咦,為什么要說“又”呢?),它的接口是有生存期的,而且必須實(shí)現(xiàn)以下三個(gè)方法: function QueryInterface(const IID: TGUID。如果不想自己實(shí)現(xiàn)這三個(gè)方法,你可以使用TComponent。lt。 而_Release時(shí)又做了什么呢? function : Integer。 Intf1 := nil。 Finally 。 Pointer
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1