Ver Mensaje Individual
  #7  
Antiguo 26-11-2009
NEG1414 NEG1414 is offline
Miembro
 
Registrado: mar 2007
Posts: 177
Reputación: 20
NEG1414 Va por buen camino
Gracias por Contestar (y por la clase magistral) he probado mediante

Código:
class TClase2;
{
   public:
  
    TComodin::TRegistro  Reg;
    void Inicializar();  
    void Funcion();   
}


void TClase2::Inicializar()
{
   Reg.Esta= true;
   Reg.Dentro = false;
   Reg.Frio    = true;
}

void TClase2::Funcion()
{
 
   TClase2* C2 = new TClase2(this);
   TComodin::TRegistro &Reg = C2.Reg;

   P = new TClase1(this,Reg);

   delete C2;
   delete P;
}
funciona pasa la variable Reg por referencia al Constructor de Clase1,modifico el valor en Clase1 y regresa a Clase2 modificada......pero hay un problema:
Yo declaro la Variable Reg en Clase2 como Global, la inicializo con una serie de valores pero una vez en FUNCION(); al ejecutar TClase2 *C2 =new TClase1(this) pierde eses valores y envia otros.
Ademas al salir de la funcion en la que llamo a clase1 (FUNCION()) la variable pierde los valores Modificados.

Es como si la variable Reg que paso como parametro del Constructor Clase1 fuera Local de Funcion().

He pensado Crear otra Variable Global del mismo tipo que Reg, y Asignarle los valores ya modificados de Reg,dentro de Funcion();pero en mi programa debere hacer esto mismo con varias variables que funcionaran igual que Reg (varios constructores de Clase1) y me parece algo egorroso...Hay otra solucion, Gracias otra Vez.
Responder Con Cita