類例項的拷貝

2022-01-17 07:08:31 字數 736 閱讀 5736

問題情境:

需要完全複製(深拷貝)另乙個例項,以保留現有的物件作後續處理等作用。

原理綜述:

物件的淺拷貝僅需在該類中新增乙個方法:

public myimage clone()

深拷貝有幾種:

針對可序列化([serializable])的類,可以宣告利用二進位制或序列化進行拷貝的方法。網上有我不再贅述。

不方便序列化的類,利用反射。具體做法見下。

解決**:

public

static

myimage clone(myimage obj)

);//

呼叫有參建構函式進行初始化,懶得進行具體分類討論思考合成乙個方法,借鑑者可以考慮下

fieldinfo fields = obj.gettype().getfields(bindingflags.public | bindingflags.nonpublic | bindingflags.static |bindingflags.instance);

foreach (var field in

fields)

catch

}return

(myimage)retval;

}private

static t clone2(t obj)

catch

}return

(t)retval;

}

iOS 深拷貝淺拷貝例項

nsstring string 漢斯哈哈哈 沒有產生新物件 nsstring copystring string copy 產生新物件 nsmutablestring mutablecopystring string mutablecopy nslog string p copystring p m...

JS的深拷貝 與 淺拷貝 例項

js中的變數型別分為 基本型別 和 引用型別 對基本型別進行複製操作會對值進行乙份拷貝,而對引用型別賦值,則會進行位址的拷貝,最終兩個變數指向同乙份資料。基本型別 var a 1 var b a a 2 console.log a,b 2,1 a b指向不同的資料 引用型別 指向同乙份資料 var ...

類的拷貝管理

拷貝控制 拷貝建構函式,拷貝賦值運算子,移動建構函式,移動賦值運算子,析構函式 拷貝建構函式 class sales data sales data sales data const sales data orig bookno orig.bookno uints sold orig.uints s...