對象展開運算符 c 中如何正確實現(xiàn)克?。ㄔ停┠J??
c 中如何正確實現(xiàn)克?。ㄔ停┠J??克隆模式一般用于具有引用語義的語言(一般只能將引用復(fù)制到對象),如Java,需要通過克隆方法顯式創(chuàng)建與原始對象相同的對象;而C原則上不需要克隆模式,因為C本質(zhì)上是
c 中如何正確實現(xiàn)克?。ㄔ停┠J??
克隆模式一般用于具有引用語義的語言(一般只能將引用復(fù)制到對象),如Java,需要通過克隆方法顯式創(chuàng)建與原始對象相同的對象;而C原則上不需要克隆模式,因為C本質(zhì)上是值語義。一般來說,它有默認(rèn)或自定義的復(fù)制構(gòu)造函數(shù)和復(fù)制賦值操作符,可以很容易地復(fù)制(深度復(fù)制)完全相同的對象,這是非常靈活的??赡苡脩舳x了一個具有引用語義的類(類似于智能指針)。此時,可以定義clone接口來提供深度復(fù)制對象的方法;
有關(guān)C復(fù)制控制、智能指針、移動語義等知識,可以參考c11系列文章。歡迎關(guān)注!