淺拷貝、深拷貝、淺賦值、深賦值
阿新 • • 發佈:2019-01-04
一、淺拷貝
物件初始化物件的時候調動拷貝建構函式,只是拷貝指標指向的拷貝構造稱為淺拷貝。
當要析勾的時候物件被一一析勾的時候,第二個析勾的物件就找不到需要釋放的空間,程式報錯。
由於預設的拷貝建構函式不能完成真實空間的拷貝,所以必須手動編寫一個預設的拷貝建構函式。
二、深拷貝
物件初始化物件的時候調動拷貝建構函式,真實開闢空間拷貝資料的拷貝構造稱為深拷貝。
三、淺賦值
物件給物件賦值時候調動賦值語句,不會開闢空間,只是簡單的指標賦值
四、深賦值
物件給物件賦值時候調動賦值語句,會開闢空間,注意開闢空間是要釋放原有空間
賦值語句4步驟:
1.自己給自己是否賦值
2.釋放原有空間
3.申請新的空間賦值,拷貝
4.返回自身物件
總結:一般類中有指標成員的資料型別,那麼類中的賦值語句和拷貝建構函式就需要重新編寫,不能使用預設的函式,杜絕淺拷貝,淺賦值