Copia de un objecto

Le copia de un objecto es le action, in programmation informatic, ubi un objecto ha su attributos copiate in un altere objecto del mesme typo de dato. Un objecto es un typo de dato composite in le linguages de programmation orientate a objectos. Le copia del datos es un del plus commun proceduras qui occurre in le programma pro computator. Un objecto pote esser copiate pro reusar tote o parte de su datos in un nove contexto.

 Copia superficial 
In anglese shallow copy. In iste processo, B es attachate al mesme bloco de memoria de A. 

Isto eveni in un situation in le qual le mesme datos es condividite inter A e B, assi un modification del prime cambiara le altere. Le bloco de memoria original de B non se refere plus a alque. Si le linguage de programmation non ha un garbage collector, le bloco original de memoria de B es probabilemente in fuga de memoria.

Le avantage del copia superficial es que su velocitate de execution es rapide e non depende del grandor del dato.

Le copias bitwise de objectos qui non es componite de blocos monolithic es copias superficial.

 Copia profunde 
In anglese deep copy. Le copia profunde consiste in un real copia del objecto. Le avantage es que A e B non depende le un del altere sed il ha un alte costo in terminos de velocitate.

 Copia pigre 
In anglese lazy copy. Le copia pigre es un combination del duo strategias precedente. Quando initialmente on copia un objecto le copia superficial es usate. Un contator A es usate pro traciar quante objectos condivide le dato. Quando le programma vole modificar le objecto, illo pote determinar si le dato es condividite (examinante le contator) e illo pote facer un copia profunde si necessari.

Le copia pigre sembla un copia profunde sed illo ha anque le avantages de velocitate del copia superficial quando es possibile. In alcun situationes de referentias circular illo pote causar problemas.

Le copia pigre es correlate al copy-on-write.

 Ligamines externe 
  Copia de un objecto in C++ 
  Copia de un objecto in Python

Categoria:Programmation orientate a objectos