Foros del Web » Programación para mayores de 30 ;) » C/C++ »

No puedo declarar un objeto dentro de un IF ELSE

Estas en el tema de No puedo declarar un objeto dentro de un IF ELSE en el foro de C/C++ en Foros del Web. El siguiente es un fragmento de un miniprograma en C++ Código: if (mm==0) Fecha objFecha; else Fecha objFecha(dd, mm, aa); objFecha.getFecha(); Al tratar de compilar, ...
  #1 (permalink)  
Antiguo 25/10/2008, 13:56
 
Fecha de Ingreso: octubre-2008
Mensajes: 34
Antigüedad: 15 años, 6 meses
Puntos: 1
No puedo declarar un objeto dentro de un IF ELSE

El siguiente es un fragmento de un miniprograma en C++
Código:
 if (mm==0) Fecha objFecha;
   else Fecha objFecha(dd, mm, aa);

objFecha.getFecha();
Al tratar de compilar, aparece el siguiente error:
'objFecha' undeclared [first use in this function]

A manera de verificación repetí parte del código así:
Código:
 if (mm==0) Fecha objFecha;
   else Fecha objFecha(dd, mm, aa);

Fecha objFecha(dd, mm, aa);
objFecha.getFecha();
y funciona correctamente.

¿Por qué no funciona cuando está dentro del estaturo IF ELSE?.

Gracias anticipadas por su ayuda.
NOTA: Ya comprobé el funcionamiento de la variable 'mm' incluyéndola en el condicional.
  #2 (permalink)  
Antiguo 25/10/2008, 17:12
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: No puedo declarar un objeto dentro de un IF ELSE

El objeto solo existe dentro del if o el else, se ve mejor asi:

Código:
if (mm == 0) 
{
  Fecha objFecha;
}
else
{
  Fecha objFecha(dd, mm, aa);
}
Declaralo afuera y usa una funcion miembro de inicializacion o sino pone la misma logica (el codigo del constructor por defecto) en el constructor con parametros cuando mm sea cero si importar los otros parametros.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 25/10/2008, 18:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 34
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: No puedo declarar un objeto dentro de un IF ELSE

Cita:
Iniciado por Eternal Idol Ver Mensaje
El objeto solo existe dentro del if o el else, se ve mejor asi:

Código:
if (mm == 0) 
{
  Fecha objFecha;
}
else
{
  Fecha objFecha(dd, mm, aa);
}
Declaralo afuera y usa una funcion miembro de inicializacion o sino pone la misma logica (el codigo del constructor por defecto) en el constructor con parametros cuando mm sea cero si importar los otros parametros.
Muchas gracias por esta aclaración.
Sólo para confirmar, ¿Si se tiene sobrecarga de constructores, no es posible usarlos uno u otro condicionalmente?
  #4 (permalink)  
Antiguo 26/10/2008, 02:52
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: No puedo declarar un objeto dentro de un IF ELSE

Los podes usar perfectamente el problema es el ambito, el objeto solo existe dentro de las llaves, se llama a su constructor y su destructor en las mismas y por lo tanto no podes usarlo despues.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:42.