• <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_ 閱讀(380) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
            无码人妻久久一区二区三区蜜桃| 性高湖久久久久久久久| 精品久久久久久国产91| 91秦先生久久久久久久| 久久这里只有精品首页| 99热成人精品热久久669| 久久婷婷人人澡人人| 欧美午夜精品久久久久免费视 | 99久久精品国内| 久久99精品久久久久久秒播| 伊人久久综合无码成人网| 精品水蜜桃久久久久久久| 亚洲精品美女久久久久99| 久久无码一区二区三区少妇 | 少妇内射兰兰久久| 99久久精品国产综合一区 | 国产精品免费久久久久电影网| 亚洲欧美一区二区三区久久| 91精品国产91久久久久久蜜臀| 亚洲精品乱码久久久久久按摩 | 夜夜亚洲天天久久| 精品蜜臀久久久久99网站| 久久人人爽人人爽人人片AV麻烦| 久久se精品一区二区影院| 国产成人精品久久一区二区三区| 中文字幕热久久久久久久| 久久天天躁狠狠躁夜夜2020一| 久久人人爽人爽人人爽av| 91精品国产91久久久久久| 久久精品国产一区| 久久99热精品| 国产2021久久精品| 日韩亚洲欧美久久久www综合网 | 久久久久久亚洲精品不卡| 色成年激情久久综合| A级毛片无码久久精品免费| 777米奇久久最新地址| 99久久婷婷免费国产综合精品| 精品久久久久香蕉网| 久久久精品免费国产四虎| 精品国产福利久久久|