• <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_ 閱讀(381) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++
            国产精品久久久久…| 欧美亚洲日本久久精品| 热re99久久精品国99热| 人妻精品久久久久中文字幕69| 国内精品久久久久伊人av| 中文字幕一区二区三区久久网站| 国产一区二区三精品久久久无广告| 久久久高清免费视频| 欧美一区二区三区久久综合| 久久久久久久综合日本亚洲| 色播久久人人爽人人爽人人片aV| 亚洲AV日韩精品久久久久| 久久精品国产影库免费看| 狠狠色丁香久久婷婷综合蜜芽五月| 久久精品aⅴ无码中文字字幕不卡| 国产精品一区二区久久精品无码| 久久九九兔免费精品6| 国产L精品国产亚洲区久久| 97精品依人久久久大香线蕉97| 伊人久久大香线焦综合四虎| 久久99久国产麻精品66| 国产成人久久精品二区三区| 久久综合香蕉国产蜜臀AV| 久久天天躁狠狠躁夜夜2020| 国产精品久久影院| 亚洲αv久久久噜噜噜噜噜| 少妇被又大又粗又爽毛片久久黑人 | 91久久香蕉国产熟女线看| 伊人久久精品无码av一区| 无码任你躁久久久久久| 久久国产成人精品国产成人亚洲| 久久亚洲春色中文字幕久久久| 亚洲国产精品成人久久蜜臀 | 久久久久久精品无码人妻| 欧美一级久久久久久久大片| 国产69精品久久久久9999| 好久久免费视频高清| 91精品国产高清久久久久久io | 免费精品久久天干天干| 久久久久亚洲精品无码网址 | 18岁日韩内射颜射午夜久久成人|