Diferencia entre revisiones de «Programación en Vala/Funcionalidades avanzadas del lenguaje»

Contenido eliminado Contenido añadido
Sigmar (discusión | contribs.)
Sigmar (discusión | contribs.)
Línea 709:
== Propiedad de las referencias ==
 
=== Referencias sin propiedadpropietario ===
 
Normalmente cuando se crea un objeto en Vala se devuelve una referencia que apunta a dicho objeto. Esto significa que además de haberse pasado un puntero al objeto a memoria, también se ha almacenado en el propio objeto que ese puntero existe. De forma similar, cuando otra referencia al objeto se crea, también es almacenada. De la misma forma que un objeto sabe cuantas referencias tiene, puede ser eliminado de ellas cuando lo necesite. Este es el comportamiento básico de la gestión de memoria.
 
Las referencias sin propietario no se almacenan en el objeto al que referencian. Esto permite al objeto ser eliminado cuando deba serlo, sin importar el hecho de que aún haya referencias que apunten hacia él. La forma usual de alcanzar esto es con un método definido con un valor de vuelta de una referencia sin propietario, como el siguiente código muestra:
 
<source lang=csharp>
class Test {
private Object o;
 
public unowned Object get_unowned_ref() {
this.o = new Object();
return this.o;
}
}
<source>
 
=== Transferencia de la propiedad ===