深拷貝與淺拷貝到底是什么

      網(wǎng)友投稿 977 2025-03-31

      復(fù)制構(gòu)造函數(shù)也叫拷貝構(gòu)造函數(shù);


      淺復(fù)制也叫淺拷貝或位拷貝;

      深復(fù)制也叫深拷貝;

      淺拷貝和深拷貝

      拷貝就是復(fù)制,創(chuàng)建副本。假設(shè)有對象A,A有屬性t1,t2。那么,我通過拷貝A,得到B,B應(yīng)該也有屬性t1,t2,且A、B兩個對象的每個屬性,都應(yīng)該是相同的。

      對于基本類型的屬性t1,拷貝是沒有疑義的。簡單將值復(fù)制一份,就達到了拷貝的效果。而對于引用類型的屬性t2來說,拷貝就有了兩層含義。

      第一層是,我只是將t2引用的地址復(fù)制一份給B的t2,確實達到了屬性相同的效果,可以理解為實現(xiàn)了拷貝,但是事實上,兩個對象中的屬性t2對應(yīng)的是同一個對象。在B對象上對t2所指向的對象進行操作,就會影響到A對象中的t2的值。

      第二層是,我將A的t2所指向的對象,假設(shè)為o1,完整復(fù)制一份,假設(shè)為o2,將新的o2的地址給B的t2。也達到了復(fù)制的效果,且對B的t2所指向的o2進行操作,不會影響到A的t2所指向的o1。

      拷貝的兩層含義,對應(yīng)了淺拷貝和深拷貝的概念,做了第一層,就是淺拷貝,做到第二層,就是深拷貝。

      基于以上內(nèi)容,很容易可以想到,淺拷貝比深拷貝要更快,但是,從拷貝的意義上來看,淺拷貝相較于深拷貝,要欠缺一點。

      實例如下:

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      深拷貝與淺拷貝到底是什么

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      根據(jù)上面實例可以看到,淺復(fù)制僅復(fù)制對象本身(其中包括是指針的成員),這樣不同被復(fù)制對象的成員中的對應(yīng)非空指針會指向同一對象,被成員指針引用的對象成為共享的,無法直接通過指針成員安全地刪除(因為若直接刪除,另外對象中的指針就會無效,形成所謂的野指針,而訪問無效指針是危險的;除非這些指針有引用計數(shù)或者其它手段確保被指對象的所有權(quán));而深復(fù)制在淺復(fù)制的基礎(chǔ)上,連同指針指向的對象也一起復(fù)制,代價比較高,但是相對容易管理。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:怎么excle表格和第一行一樣的計算式求和(excel同一行怎么求和)
      下一篇:生產(chǎn)流水線 系統(tǒng)(生產(chǎn)線流水線)
      相關(guān)文章
      亚洲日韩激情无码一区| 亚洲AV无码成人网站在线观看| 亚洲中文字幕久久精品蜜桃| 亚洲色图.com| 久久夜色精品国产亚洲AV动态图| 亚洲色欲色欲www在线丝| 亚洲A∨午夜成人片精品网站| 亚洲国产精品无码久久98| 亚洲色偷偷色噜噜狠狠99网| 亚洲综合一区国产精品| 亚洲成人激情小说| 亚洲情A成黄在线观看动漫软件| 亚洲最大成人网色香蕉| youjizz亚洲| 亚洲色偷精品一区二区三区 | 亚洲天堂2017无码中文| 亚洲高清一区二区三区| 亚洲AV综合色区无码二区偷拍| 久久精品国产亚洲AV忘忧草18| 亚洲激情黄色小说| 亚洲中文无码av永久| 色老板亚洲视频免在线观 | 亚洲精品无码成人AAA片| 亚洲伦乱亚洲h视频| 国产91成人精品亚洲精品| 亚洲国产精品丝袜在线观看| 久久综合亚洲色HEZYO国产| 亚洲日韩精品无码专区网址| 亚洲AV日韩AV永久无码久久| 1区1区3区4区产品亚洲| 亚洲一级免费毛片| 亚洲男人的天堂网站| 亚洲av麻豆aⅴ无码电影| 亚洲国产精品人人做人人爱| 色久悠悠婷婷综合在线亚洲| 久久亚洲免费视频| 亚洲国产成人九九综合| 亚洲欧美日韩久久精品| 亚洲国模精品一区| 亚洲精品国产精品乱码不99| 亚洲男人天堂2017|