淺拷貝 深拷貝

2021-09-11 08:03:45 字數 872 閱讀 3623

淺拷貝:

student zhang(「computer」); //呼叫普通的建構函式

student wang(zhang); //呼叫系統提供的預設拷貝建構函式

如果student 類中存在指標型別成員,定義wang時,只是將zhang的成員指標中存放的位址值賦給wang的指標成員,並沒有另外生成新位址。

#include

#include

using namespace std;

class student

;student:

:student

(char

*pspec)

//定義建構函式

else specialty=0;

}student::~

student()

void student:

:show()

intmain()

深拷貝:

使用物件zhang建立物件wang,給wang的指標成員新申請了一塊記憶體空間,然後將zhang的"computer"複製到新的記憶體空間去。

#include

#include

using namespace std;

class student

;student:

:student

(const student &stu)

//定義建構函式

else specialty=0;

}student::~

student()

void student:

:show()

intmain()

淺拷貝 深拷貝

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...

淺拷貝 深拷貝

retain是建立乙個指標,引用物件計數加1。copy屬性表示兩個物件內容相同,新的物件retain為1 與舊有物件的引用計數無關,舊有物件沒有變化。copy減少物件對上下文的依賴。retain屬性表示兩個物件位址相同 建立乙個指標,指標拷貝 內容當然相同,這個物件的retain值 1也就是說,re...