深拷貝 賦值

2021-09-22 19:41:35 字數 483 閱讀 8659

// 實現轉殖clone

// let obj = new window[this._type];

// let obj = dobject.deepcopy(this);

// let obj = this.constructor();

let obj = class.createobject(this._type, false);

1. new window[type] 

要確保type 就是類名,否則出錯。

2. dobject.deepcopy(this);

深拷貝自己實現.

3. this.constructor();

因為是this 呼叫constructor(),可能會修改this 本身,導致錯誤.

4. createobject 利用工廠模式轉殖構造物件;

除了深拷貝外,其他方法都要進行 assign 賦值,賦值要注意值引用.

淺拷貝 深拷貝和淺賦值 深賦值

include includeusing namespace std class string else 淺拷貝 也就是系統預設的拷貝,可寫可不寫。string const string s 預設的拷貝構造 深拷貝 string const string s string s2 s1 深賦值 str...

賦值 淺拷貝 深拷貝

堆是動態分配記憶體,記憶體大小不一 棧是自動分配相對固定大小的記憶體空間,並由系統自動釋放 基本資料型別值是不可變的,比較是值的比較 基本資料型別,傳值。開闢乙個新的記憶體空間 js 基本資料型別,儲存在 棧 中,記憶體可以及時 引用型別值是可變的,比較是引用的比較,看其引用是否指向同乙個物件 引用...

深拷貝 淺拷貝 賦值

賦值 class teacher class student student s1 new student student s2 s1 s1 s2,指向的記憶體區域相同 拷貝 class teacher class student implement cloneable student s1 new...