卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java深拷貝復(fù)制list c 中如何正確實(shí)現(xiàn)克?。ㄔ停┠J剑?/h1>

c 中如何正確實(shí)現(xiàn)克?。ㄔ停┠J??克隆模式一般用于具有引用語(yǔ)義的語(yǔ)言(一般只能將引用復(fù)制到對(duì)象),如Java,需要通過克隆方法顯式創(chuàng)建與原始對(duì)象相同的對(duì)象;而C原則上不需要克隆模式,因?yàn)镃本質(zhì)上是

c 中如何正確實(shí)現(xiàn)克?。ㄔ停┠J剑?/h2>

克隆模式一般用于具有引用語(yǔ)義的語(yǔ)言(一般只能將引用復(fù)制到對(duì)象),如Java,需要通過克隆方法顯式創(chuàng)建與原始對(duì)象相同的對(duì)象;而C原則上不需要克隆模式,因?yàn)镃本質(zhì)上是值語(yǔ)義。一般來說,它有默認(rèn)或自定義的復(fù)制構(gòu)造函數(shù)和復(fù)制賦值操作符,可以很容易地復(fù)制(深度復(fù)制)完全相同的對(duì)象,這是非常靈活的??赡苡脩舳x了一個(gè)具有引用語(yǔ)義的類(類似于智能指針)。此時(shí),可以定義clone接口來提供深度復(fù)制對(duì)象的方法;

有關(guān)C復(fù)制控制、智能指針、移動(dòng)語(yǔ)義等知識(shí),可以參考c11系列文章。歡迎關(guān)注

PHP對(duì)象的淺復(fù)制與深復(fù)制的實(shí)例詳解?

原型模式

使用原型實(shí)例指定要?jiǎng)?chuàng)建的對(duì)象的類型,并通過復(fù)制這些原型來創(chuàng)建新對(duì)象

原型模式基于深度復(fù)制和淺層復(fù)制。在Java中,有兩種拷貝:

shallow copy

拷貝一個(gè)對(duì)象后,會(huì)生成一個(gè)新的對(duì)象。新對(duì)象的所有成員變量(基本類型或引用類型)都包含與原始對(duì)象相同的對(duì)象

如果原始對(duì)象的成員變量是基本數(shù)據(jù)類型,則此變量的值將復(fù)制到新對(duì)象。如果原始對(duì)象的成員變量是引用數(shù)據(jù)類型,則此引用指向的對(duì)象將不會(huì)生成新的引用,而是

新對(duì)象中的引用和原始對(duì)象的引用指向同一對(duì)象。

深度復(fù)制

復(fù)制對(duì)象后,將生成一個(gè)新對(duì)象。新對(duì)象的基本數(shù)據(jù)類型變量包含與原始對(duì)象相同的值。例如

如果原始對(duì)象的成員變量是引用數(shù)據(jù)類型,則在新對(duì)象中,這些引用變量將指向復(fù)制的新對(duì)象,而

不再指向原始引用對(duì)象。深度復(fù)制將復(fù)制被復(fù)制對(duì)象引用的所有對(duì)象。

例如:

有一個(gè)對(duì)象a,它被復(fù)制以生成對(duì)象B。如果對(duì)象a中有一個(gè)int類型變量I的值為4,則對(duì)象B中的int值也是4。將a改為int類型變量不會(huì)影響B(tài)。如果a中有一個(gè)引用類型為

的成員變量C,它將指向?qū)ο驞。復(fù)制后,B中也會(huì)有一個(gè)C,它也指向?qū)ο驞,a的C和B的C指向同一個(gè)

對(duì)象D,這是淺層復(fù)制。如果是深度復(fù)制,a中的C指向一個(gè)D對(duì)象,B中的C指向一個(gè)新對(duì)象

,它們不會(huì)指向同一個(gè)對(duì)象。這樣,對(duì)原始對(duì)象中成員變量C指向的對(duì)象D所做的任何更改都不會(huì)影響新對(duì)象。

舉一個(gè)最簡(jiǎn)單的例子:

classA{

publicinti

publicintj

}

AA=newa()

淺拷貝:

Aa1=a

深拷貝:

Aa1=newa()

A1。I=A.I

A1。J=A.J

感覺如下:

淺拷貝只復(fù)制對(duì)象本身

深拷貝復(fù)制對(duì)象中引用的對(duì)象并繼續(xù)復(fù)制。