• <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>
            posts - 34,comments - 2,trackbacks - 0
                拷貝即是通常所說(shuō)的復(fù)制(Copy)或克隆(Clone),對(duì)象的拷貝也就是從現(xiàn)有對(duì)象復(fù)制一個(gè)“一模一樣”的新對(duì)象出來(lái)。雖然都是復(fù)制對(duì)象,但是不同的復(fù)制方法,復(fù)制出來(lái)的新對(duì)象卻并非完全一模一樣,對(duì)象內(nèi)部存在著一些差異。通常的拷貝方法有兩種,即深拷貝和淺拷貝,那二者之間有何區(qū)別呢?
            我的理解是:

            1、深拷貝和淺拷貝之間的區(qū)別在于是否復(fù)制了子對(duì)象。
            2、如果一個(gè)類擁有資源(堆,或者是其它系統(tǒng)資源),,當(dāng)這個(gè)類的對(duì)象發(fā)生復(fù)制過(guò)程的時(shí)候,資源重新分配,這個(gè)過(guò)程就是深拷貝,反之對(duì)象存在資源,但復(fù)制過(guò)程并未復(fù)制資源的情況視為淺拷貝。

            當(dāng)用一個(gè)已初始化過(guò)了的自定義類類型對(duì)象去初始化另一個(gè)新構(gòu)造的對(duì)象的時(shí)候,拷貝構(gòu)造函數(shù)就會(huì)被自動(dòng)調(diào)用。也就是說(shuō),當(dāng)類的對(duì)象需要拷貝時(shí),拷貝構(gòu)造函數(shù)將會(huì)被調(diào)用。以下情況都會(huì)調(diào)用拷貝構(gòu)造函數(shù):
            ①、一個(gè)對(duì)象以值傳遞的方式傳入函數(shù)體:這個(gè)好理解,因?yàn)閭鬟f給函數(shù)體的參數(shù)不是  str 而是 _str  ,是str的復(fù)制品。所以必然會(huì)調(diào)用拷貝構(gòu)造函數(shù)。 
            ②、一個(gè)對(duì)象以值傳遞的方式從函數(shù)返回 :相當(dāng)于構(gòu)造一個(gè)新的對(duì)象。
            ③、一個(gè)對(duì)象需要通過(guò)另外一個(gè)對(duì)象進(jìn)行初始化。:同上、

            正如您理解那樣 “淺拷貝:只拷貝對(duì)象的基本屬性,其他的引用不拷貝,還是保留引用”如果在類中沒(méi)有顯式地聲明一個(gè)拷貝構(gòu)造函數(shù),那么,編譯器將會(huì)自動(dòng)生成一個(gè)默認(rèn)的拷貝構(gòu)造函數(shù),該構(gòu)造函數(shù)完成對(duì)象之間的位拷貝。當(dāng)對(duì)象沒(méi)有指針時(shí),按照上面的規(guī)則,則一切正常,淺拷貝把數(shù)據(jù)復(fù)制過(guò)新對(duì)象。但當(dāng)對(duì)象有指針時(shí),因?yàn)闇\拷貝引用不拷貝,所以新對(duì)象與舊對(duì)象他們指向的是同一個(gè)內(nèi)存區(qū),這時(shí)當(dāng)釋放內(nèi)存時(shí)就出現(xiàn)釋放兩次,出錯(cuò)了。

            這時(shí)需要深拷貝..................
            所以通常我們需要自己寫拷貝構(gòu)造函數(shù),以免出現(xiàn)錯(cuò)誤。
            //////////////參考資料所得,正確與否歡迎討論、

             

            posted on 2011-09-27 01:24 Yu_ 閱讀(377) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
            青青草原综合久久| 9191精品国产免费久久| 久久久无码精品亚洲日韩蜜臀浪潮| 久久午夜综合久久| 久久夜色精品国产噜噜噜亚洲AV | 久久综合给合久久国产免费 | 久久成人18免费网站| 青青草国产97免久久费观看| 亚洲香蕉网久久综合影视| 亚洲一区二区三区日本久久九| 日韩欧美亚洲国产精品字幕久久久 | 久久久久AV综合网成人| 久久精品国产久精国产| 亚洲国产精品无码久久青草| 国产午夜精品理论片久久影视| 久久精品国产男包| 91久久香蕉国产熟女线看| 国产精品久久久久久久久久影院 | 久久久青草青青亚洲国产免观| 97香蕉久久夜色精品国产 | 久久久免费观成人影院| 欧美喷潮久久久XXXXx| 久久久久99这里有精品10| 国产激情久久久久影院老熟女| 亚洲国产精品无码久久98| 97视频久久久| 武侠古典久久婷婷狼人伊人| 一本色道久久88加勒比—综合| 亚洲国产精品高清久久久| 久久精品国产亚洲av麻豆图片| 精品国产婷婷久久久| 国产AⅤ精品一区二区三区久久| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 亚洲精品午夜国产va久久| 久久精品国产色蜜蜜麻豆| 99热热久久这里只有精品68| 青青草原1769久久免费播放| 97久久精品人人做人人爽| 99久久婷婷国产综合精品草原| 99久久精品国产一区二区三区| 日韩精品久久久久久|