• <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)

            隨筆檔案

            最新隨筆

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久亚洲sm情趣捆绑调教| 久久久精品国产sm调教网站| 国产AV影片久久久久久| 久久电影网| 欧美大香线蕉线伊人久久| 91亚洲国产成人久久精品| 一本一本久久a久久综合精品蜜桃| 久久99国内精品自在现线| 久久国产免费直播| 国产情侣久久久久aⅴ免费| 久久久久亚洲AV综合波多野结衣| 亚洲va久久久噜噜噜久久天堂| 亚洲一区中文字幕久久| 久久精品国产男包| 日本亚洲色大成网站WWW久久| 久久亚洲AV成人无码国产 | 亚洲精品97久久中文字幕无码| 午夜精品久久久久久中宇| 欧美午夜A∨大片久久 | 国产精品久久久久久久| 伊人久久五月天| 国産精品久久久久久久| 久久国产精品久久| 久久久久亚洲AV无码麻豆| 亚洲精品无码久久久久| 亚洲va久久久久| 久久综合色区| 久久久WWW免费人成精品| 日本久久久久久中文字幕| 国产V综合V亚洲欧美久久| 精品久久久久久国产潘金莲| 亚洲综合熟女久久久30p| 久久久久久久久久久精品尤物| 无码人妻久久一区二区三区蜜桃 | 久久久WWW成人免费精品| 日本久久久精品中文字幕| 久久亚洲国产成人影院| 中文字幕亚洲综合久久菠萝蜜| 色综合久久天天综线观看| 亚洲国产成人久久笫一页| 狠狠色丁香婷婷久久综合|