淺拷貝與深拷貝的區別

2021-10-10 10:49:23 字數 397 閱讀 1027

簡單的來說就是,在有指標的情況下,淺拷貝只是增加了乙個指標指向已經存在的記憶體,而深拷貝就是增加乙個指標並且申請乙個新的記憶體,使這個增加的指標指向這個新的記憶體,採用深拷貝的情況下,釋放記憶體的時候就不會出現在淺拷貝時重複釋放同一記憶體的錯誤!

我列舉乙個例子來說吧:

你正在編寫c++程式中有時用到,操作符的過載。最能體現深層拷貝與淺層拷貝的,就是『=』的過載。

看下面乙個簡單的程式:

class string

string()

{};string & operator=(const string s)

};int main()

這樣你就實現了深拷貝,原因是你為被賦值物件申請了乙個新的記憶體所以就是深拷貝。

淺拷貝與深拷貝的區別

簡單的來說就是,在有指標的情況下,淺拷貝只是增加了乙個指標指向已經存在的記憶體,而深拷貝就是增加乙個指標並且申請乙個新的記憶體,使這個增加的指標指向這個新的記憶體,採用深拷貝的情況下,釋放記憶體的時候就不會出現在淺拷貝時重複釋放同一記憶體的錯誤!我列舉乙個例子來說吧 你正在編寫c 程式中有時用到,操...

淺拷貝與深拷貝的區別

簡單的來說就是,在有指標的情況下,淺拷貝只是增加了乙個指標指向已經存在的記憶體,而深拷貝就是增加乙個指標並且申請乙個新的記憶體,使這個增加的指標指向這個新的記憶體,採用深拷貝的情況下,釋放記憶體的時候就不會出現在淺拷貝時重複釋放同一記憶體的錯誤!我列舉乙個例子來說吧 你正在編寫c 程式中有時用到,操...

淺拷貝與深拷貝的區別

在python中有乙個copy模組。copy.copy 是淺拷貝 copy.deepcopy 是深拷貝 對於不可變型別,無論是淺拷貝還是深拷貝都只是指向作用,沒有進行拷貝,對於可變型別copy.copy 與copy.deepcopy存在差距 import copy a 1,2,3 b 4,5 c a...