• <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>
            asm, c, c++ are my all
            -- Core In Computer
            posts - 139,  comments - 123,  trackbacks - 0
            什么是對象的句柄?它是指針嗎?它是引用嗎?它是指向指針的指針?它是什么?

            句柄術(shù)語一般用來指獲取另一個(gè)對象的方法——一個(gè)廣義的假指針。這個(gè)術(shù)語是(故意的)含糊不清的。

            含糊不清在實(shí)際中的某些情況下是有用的。例如,在早期設(shè)計(jì)時(shí),你可能不準(zhǔn)備用句柄來表示。你可能不確定是否將一個(gè)簡單的指針或者引用或者指向指針的指針或者指向引用的指針或者整型標(biāo)識符放在一個(gè)數(shù)組或者字符串(或其它鍵)以便能夠以哈希表(hash-table)(或其他數(shù)據(jù)結(jié)構(gòu))或數(shù)據(jù)庫鍵或者一些其它的技巧來查詢。如果你只知道你會需要一些唯一標(biāo)識的東西來獲取對象,那么這些東西就被稱為句柄。

            因此,如果你的最終目標(biāo)是要讓代碼唯一的標(biāo)識/查詢一個(gè)Fred類的指定的對象的話,你需要傳遞一個(gè)Fred句柄這些代碼。句柄可以是一個(gè)能被作為眾所周知的查詢表中的鍵(key)來使用的字符串(比如,在std::map<std::string,Fred> 或 std::map<std::string,Fred*>中的鍵),或者它可以是一個(gè)作為數(shù)組中的索引的整數(shù)(比如,F(xiàn)red* array = new Fred[maxNumFreds]),或者它可以是一個(gè)簡單的 Fred*,或者它可以是其它的一些東西。


            初學(xué)者常常考慮指針,但實(shí)際上使用未初始化的指針有底層的風(fēng)險(xiǎn)。例如,如果Fred對象需要移動怎么辦?當(dāng)Fred對象可以被安全刪除時(shí)我們?nèi)绾潍@知?如果Fred對象需要(臨時(shí)的)連續(xù)的從磁盤獲得怎么辦?等等。這些時(shí)候的大多數(shù),我們增加一個(gè)間接層來管理位置。例如,句柄可以是Fred**,指向Fred*的指針可以保證不會被移動。當(dāng)Fred對象需要移動時(shí),你只要更新指向Fred*的指針就可以了。或者讓用一個(gè)整數(shù)作為句柄,然后在表或數(shù)組或其他地方查詢Fred的對象(或者指向Fred對象的指針)。


            重點(diǎn)是當(dāng)我們不知道要做的事情的細(xì)節(jié)時(shí),使用句柄。

            使用句柄的另一個(gè)時(shí)機(jī)是想要將已經(jīng)完成的東西含糊化的時(shí)候(有時(shí)用術(shù)語magic cookie也一樣,就像這樣,“軟件傳遞一個(gè)magic cookie來唯一標(biāo)識并定位適當(dāng)?shù)腇red對象”)。將已經(jīng)完成的東西含糊化的原因是使得句柄的特殊細(xì)節(jié)或表示物改變時(shí)所產(chǎn)生的連鎖反應(yīng)最小化。舉例來說,當(dāng)將一個(gè)句柄從用來在表中查詢的字符串變?yōu)樵跀?shù)組中查詢的整數(shù)時(shí),我們可不想更新大量的代碼。

            當(dāng)句柄的細(xì)節(jié)或表示物改變時(shí),維護(hù)工作更為簡單(或者說閱讀和書寫代碼更容易),因此常常將句柄封裝到類中。這樣的類常重載operator-> 和 operator*算符(既然句柄的效果象指針,那么它可能看起來也象指針)。

            posted on 2006-07-28 00:48 Jerry Cat 閱讀(516) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理



            <2006年12月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(7)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            国产综合久久久久久鬼色| 亚洲Av无码国产情品久久| 久久伊人精品一区二区三区| 一本大道久久东京热无码AV| 久久天天婷婷五月俺也去| 国产69精品久久久久9999APGF| 热re99久久精品国99热| 国产精品久久自在自线观看| 久久综合综合久久97色| 久久人人爽人人人人片av| 久久精品国产网红主播| 久久中文字幕视频、最近更新| 色天使久久综合网天天| 72种姿势欧美久久久久大黄蕉| 精品久久久久久久中文字幕| 久久天天躁狠狠躁夜夜躁2O2O| 91精品国产91久久久久久蜜臀| 久久受www免费人成_看片中文| 久久精品毛片免费观看| 亚洲性久久久影院| 国产日韩久久久精品影院首页| 久久精品国产久精国产一老狼| 国产香蕉97碰碰久久人人| 亚洲熟妇无码另类久久久| 久久免费视频一区| 热久久这里只有精品| 久久天堂AV综合合色蜜桃网| 久久亚洲精品无码观看不卡| 久久噜噜电影你懂的| 69国产成人综合久久精品| 亚洲va久久久噜噜噜久久| 久久亚洲日韩看片无码| 伊人伊成久久人综合网777| 久久久免费观成人影院| 国产视频久久| 久久99精品久久久久久野外| 人人狠狠综合久久亚洲88| 51久久夜色精品国产| 色综合久久最新中文字幕| AAA级久久久精品无码区| 99国内精品久久久久久久|