Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   clase que contiene otra clase definida de forma posterior (https://www.clubdelphi.com/foros/showthread.php?t=63559)

astwin 19-02-2009 13:25:33

clase que contiene otra clase definida de forma posterior
 
Hola a todos, quisisera preguntaros si existe alguna forma de solucionar un problema que tengo, y es que tengo una clase Tin que contiene una variable del tipo Tout, y una clase Tout que contiene otra de la clase Tin:

type TIn=class
...
Cout : Tout; <- Da error de undeclared identifier
...
end;

type TOut=class
...
vTIn : array of TIn;
...
end;

Como una clase esta definida despues de otra, la variable de la clase definida despues no la reconoce. ¿Como podria solucionarlo?
Muchas gracias.

Ñuño Martínez 19-02-2009 13:44:07

Código Delphi [-]
TYPE
  TIn = CLASS;

  TOut = CLASS
  PUBLIC
    fIn: TIn;
  END;


  TIn = CLASS
  PUBLIC
    fOut: TOut;
  END;
Et voilá!

Aun así, has de andarte con cuidado al utilizar este tipo de relaciones cíclicas. Intenta evitarlas y buscar otra solución, si es posible.

Crandel 19-02-2009 13:46:25

Hola astwin, bienvenido al foro, como sugerencia puedes poner tu codigo dentro de etiquetas para sea mas legible.

Respecto a tu problema, lo que debes hacer es definir la TOut antes que TIn ... pero no completa :p

Te quedaria asi:
Código Delphi [-]
type

  TOut = class;

  TIn=class
  ... 
  Cout : Tout;
  ...
  end; 

  type TOut=class
  ...
  vTIn : array of TIn; 
  ...
  end;

Suerte

Crandel 19-02-2009 13:47:21

jeje, me ganaste de mano Ñuño :D

astwin 19-02-2009 15:42:55

Muchisimas gracias a ambos. Ya funciona bien :p.

Ñuño Martínez 20-02-2009 11:26:55

Cita:

Empezado por Crandel (Mensaje 338686)
jeje, me ganaste de mano Ñuño :D

Has de ser más rápido, joven padawan... :D

Cita:

Empezado por astwin (Mensaje 338698)
Muchisimas gracias a ambos. Ya funciona bien :p.

De nada. :)


La franja horaria es GMT +2. Ahora son las 11:27:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi