Thursday, 13 November 2008

Evitar referencia circular de 2 clases en una misma unidad. (Delphi)


Imaginad que tenemos:


type
TClassA = class(TObject)
public
objClassB : TClassB;
end;

type
TClassB = class(TObject)
public
objClassA : TClassA;
end;



Esto no compilará, ya que el TClassA quiere hacer servir una instáncia de TClassB que aún no se ha definido. Para solucionar esto, solo tenemos que hacer eso:


type
TClassB = class; //Definimos primero este

TClassA = class(TObject)
public
objClassB : TClassB;
end;

TClassB = class(TObject) //luego lo completamos
public
objClassA : TClassA;
end;



0 comments:

Post a Comment