1. 程式人生 > >淺拷貝、深拷貝、淺賦值、深賦值

淺拷貝、深拷貝、淺賦值、深賦值

一、淺拷貝

    物件初始化物件的時候調動拷貝建構函式,只是拷貝指標指向的拷貝構造稱為淺拷貝。

      當要析勾的時候物件被一一析勾的時候,第二個析勾的物件就找不到需要釋放的空間,程式報錯。

      由於預設的拷貝建構函式不能完成真實空間的拷貝,所以必須手動編寫一個預設的拷貝建構函式。

二、深拷貝

      物件初始化物件的時候調動拷貝建構函式,真實開闢空間拷貝資料的拷貝構造稱為深拷貝

三、淺賦值

        物件給物件賦值時候調動賦值語句,不會開闢空間,只是簡單的指標賦值

四、深賦值

           物件給物件賦值時候調動賦值語句,會開闢空間,注意開闢空間是要釋放原有空間

賦值語句4步驟:

     1.自己給自己是否賦值

     2.釋放原有空間

     3.申請新的空間賦值,拷貝

     4.返回自身物件

     總結:一般類中有指標成員的資料型別,那麼類中的賦值語句和拷貝建構函式就需要重新編寫,不能使用預設的函式,杜絕淺拷貝,淺賦值