淺複製 深複製

2021-07-09 01:08:53 字數 826 閱讀 1811

second,來說說shallow copy and 

deep copy的定義和我自己的一些理解。僅供參考

淺複製(shallow copy):如果欄位是值型別的。則對該字段執行逐位複製,如果欄位是引用型別,則複製引用但不複製引用的物件;因此,原始物件及其副本引用同一物件。即被複製物件的所有變數都含有與原來的物件相同的值,而所有的對其他物件的引用都仍然只想原來的物件。只是複製了位址,但是物件本身不屬於複製的新物件。

深複製(deep copy)

即把引用物件的變數只想複製過得新物件,而不是原有被引用的物件。位址和物件本身都屬於複製的新物件。

我的專業是電子資訊科學與技術的,雖然專業課學習的不透徹,但是還是有點懂得大概面的,記得我們專業課上講過進棧和出棧。此處的棧指的就是位址,所謂位址和咱們的房間也差不多,具體的額乙個位置,但是它是抽象化的。進棧和出棧的資料就是所謂的物件,和家裡房間的家具什麼的相似,淺複製就是別人蓋房和你家的圖紙是一樣的,外表看是一樣的,但是內部設定不一樣,這就是淺複製。深複製就是完全一樣。

這是我這個階段對淺複製和深複製的理解,希望有不同理解的小夥伴們提出建議,讓我更好的成長。

深複製 淺複製

深複製又叫深拷貝 淺複製又叫淺拷貝 位拷貝。為了理解什麼叫深複製和淺複製,我們舉乙個例子,假如我們有乙個類叫cdemo,有兩個成員,a 和 str.class cdemo 我們再定義乙個建構函式 cdemo int pa,char cstr 然後執行 cdemo a 10,hello cdemo b...

深複製淺複製

淺複製 所謂的淺拷貝就是拷貝指向物件的指標,意思就是說 拷貝出來的目標物件的指標和源物件的指標指向的記憶體空間是同一塊空間.淺拷貝只是一種簡單的拷貝,讓幾個物件公用乙個記憶體,然而當記憶體銷毀的時候,指向這個記憶體空間的所有指標需要重新定義,不然會造成野指標錯誤 深複製所謂的深拷貝指拷貝物件的具體內...

淺複製和深複製

在c 中,下面三種物件需要呼叫拷貝建構函式 有時也稱 複製建構函式 1 乙個物件作為函式引數,以值傳遞的方式傳入函式體 全域性函式,傳入的是物件 void g fun resume c 2 乙個物件作為函式返回值,以值傳遞的方式從函式返回 全域性函式 返回的是物件 resume g fun 3 乙個...