Ver Mensaje Individual
  #1  
Antiguo 08-11-2011
TecnoBestia TecnoBestia is offline
Miembro
 
Registrado: jun 2010
Posts: 35
Reputación: 0
TecnoBestia Va por buen camino
Como puedo asignar una copia de una instancia sin que sea una referencia.

Hola amigos, una vez más requiero de su gran ayuda.

Tengo una clase definida de esta manera:

Código:
Individuo=class(TObject)
  private
  protected
  public
    VClasificacion:VectorIR;
    VCoordenadas:VectorIR;
    Inercia:Double;
    VDistancias:VectorIR;
    TieneClasesVacias:Boolean;
    procedure CargarClasificacionYDistancias();
    procedure GenerarVecino(CantiParticion:Integer);
    procedure CGRealesParaClasificacion();
    function RecalcularInercia:Double;
  published
    //destructor Destroy; override;
end;
Si tengo dos variables Var1 y Var 2 de tipo Individuo, de manera que dependiendo de una condición, no importa cual sea, se debe guardar el contenido de Var1 en Var2 para luego cambiar Var1 o bien destruirlo para luego reutilizarlo. La situación es la siguiente, si ejecuto el siguiente código:

Código:
Var2:=Var1;
Var1.Destroy;
Esto me destruye también a Var2, me suena que lo anterior lo que hace es una asignación de punteros y cuando cambio Var1 luego de guardarlo en Var2, se me cambia lo contenido en Var1.

Mi pregunta es: ¿existe una forma de realizar la asignación de modo que se me guarde una copia y no una referencia al mismo espacio de memoria?

Con el fin de modificar luego una de las variables manteniendose la otra intacta.

Gracias de antemano por su valiosa ayuda.
Responder Con Cita