Hola chic@s
Tengo un problemilla y es que no me viene a la mente como solucionar el siguiente problema:
Tengo este programa de test:
Código C++:
Ver originalFCT_TEST_BGN(Fecha - Comparacion: desigualdad) {
const Fecha f(1, 2, 2000);
const Fecha g(f);
const Fecha h(2, 3, 2001);
fct_chk(!(f != g));
fct_chk(f != h);
fct_chk(f != "00002/003/02001"); // Problema en esta linea
fct_chk("1/1/2001" != g);
}
Mi constructor a partir de una cadena de la siguiente manera:
Código C++:
Ver originalFecha::Fecha (const char *fecha){
int iCheck;
iCheck
= sscanf(fecha
, "%02d/%02d/%04d", &iDia_
, &iMes_
, &iAno_
); if(iCheck == 3){
fecha_actual();
if(!es_valida(iDia_, iMes_, iAno_))
throw Invalida("Error: No ha introducido una fecha correcta");
}
else{
throw Invalida("Error: Formato de fecha no valido. Formato valido: dd/mm/aaaa");
}
}
El caso es que me da el siguiente problema:
Código:
terminate called after throwing an instance of 'Fecha::Invalida'
Fecha - Comparacion: desigualdad ..................................Abortado
La clase Invalida está dentro de la clase Fecha:
Código C++:
Ver originalclass Invalida {
public:
Invalida(const char* cError) : cError_(cError) {}
const char* por_que() const noexcept;
private:
const char* cError_;
};
No sabría como solucionar esa devolución del error.
Muchas gracias por su tiempo
PD: no sé si debería controlar la cantidad de ceros a la izquierda, ya que el otro método de test de fecha incorrecta funciona correctamente