淺拷貝 偽拷貝 深拷貝

2021-07-08 15:51:08 字數 507 閱讀 4554

//偽拷貝

--就是假拷貝

,並沒有真正的拷貝

,位址和

person01

位址一樣

,兩個指向乙個位址

//- (id)copywithzone:(nszone*)zone //

淺拷貝--物件是2個

,但是內容是同乙個

,人是兩份

,拷貝的姓名是個指標

.這種拷貝是把

name

的首位址給傳進來了

,年齡拷貝進來了

,但真的年齡還是乙份

//-(id)copywithzone:(nszone *)zone //

// //

深拷貝--

物件是2個,

但是內容也是兩個

,你改什麼內容對我沒有影響

~名字和年齡各兩份

,各存放

- (id)copywithzone:(

nszone

*)zone

iOS偽拷貝, 淺拷貝, 深拷貝

先來說說偽拷貝。偽拷貝就是生成了乙個指標變數,指向了某乙個物件。接下來我們來 下淺拷貝和深拷貝。首先,從copy開始說,簡而言之,copy的目的就是生成乙個新的例項,然後把其成員都按原例項賦值。對於非指標型的成員,比如bool,int,float,這樣的賦值可以直接進行。但是對於指標型的資料,比如o...

淺拷貝 深拷貝

copy mutablecopy copy 不管是可變的,還是不可變的,結果都是不可變的 mutablecopy 不管是不可變的,還是可變的,結果都是可變的 nsmutablestring str nsmutablestring stringwithformat a nsarray arr1 str...

深拷貝 淺拷貝

c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...