Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 26-11-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
El problema está en que typedef realmente no crea nuevos tipos sino que es mas bien un alias. De esta forma como TRegistro[15] es realmente el tipo básico Registro*, el compilador no entiende cuando se trata de un miembro de una clase.

Puedes usar un truco utilizando una referencia intermedia:
Código:
class TComodin
{
   public:

      struct Registro
      {
          bool esta;
          bool Dentro;
          bool Frio;
      };

      typedef Registro  TRegistro[15];
};

class  TClase1
{

  public:

  TClase1(TComodin::TRegistro& R);

};

TClase1::TClase1(TComodin::TRegistro&)
{
}

class  TClase2
{
  public:

  TComodin::TRegistro  Reg;
  TClase1 *Clas1;

  void Funcion();
};

void TClase2::Funcion()
{
  TClase2 C2;
 
  // Declaro yna referencia del tipo TComodin::TRegistro a C2.Reg
  // Esa referencia no es realmente una variable...
  TComodin::TRegistro &Reg = C2.Reg;
  Clas1 = new TClas1(Reg);

  // Sin embargo esto funciona talcual, sin necesidad de ninguna referencia:
  TComodin::TRegistro R;
  Clas1 = new TClas1(R);
}
Saludos.

Última edición por escafandra fecha: 26-11-2009 a las 13:16:37.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
pasar un registro de un dbedit a otro con el procedure edit betty_loo Conexión con bases de datos 1 07-11-2007 22:51:55
Referencia circular Enan0 Varios 3 31-10-2006 22:56:26
referencia circular melon OOP 1 16-04-2006 02:13:00
variables por referencia shaktale Varios 2 11-06-2003 12:24:59


La franja horaria es GMT +2. Ahora son las 00:15:56.


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