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