Shallow Copy and Deep Copy
淺拷貝(Shallow Copy)與深拷貝(Deep Copy),它們是什麼?
1.淺拷貝(Shallow Copy)=(bitwise copy:位元逐一複製,按位拷貝)指的是拷貝對象而不拷貝該對象包含的對象,對它的嵌套的對象,僅拷貝其句柄。
2.深拷貝(Deep Copy)指在拷貝對象的時候連同拷貝它所包含的對象。
簡單的說
通俗的講Copy就是複製,將一個對象的值複製給另一個對象。淺拷貝就是數據成員間的賦值,Copy後兩個對象使用相同的資源。但是可能是這樣的情況:對象還包含資源(堆資源、文件),當兩者同時對資源訪問的時候問題就出現了。深拷貝剛好可以解決這樣的問題,它不僅僅的複製引用,它會將資源也賦值一次其結果是不同的對象有不同的資源,但資源的內容是一樣的。對於堆資源來說,就是再開辟一片堆內存,把原來的內容複製一遍。
淺拷貝,就像同學A有一輛自行車很好騎,B是A的好朋友也想騎,但是某一天當B想騎車時A已經將車騎走了(這樣問題就出現了);而深拷貝,如同當B知道A的車好騎後,又去買了一輛同樣的車,這樣自己能舒舒服服的騎車的同時也避免了A將車騎走得情況。
最後更新:2017-04-03 12:55:19