Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/04/2016, 02:03
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 3 meses
Puntos: 204
Respuesta: Duda puntual: Cadenas de fechas

Está claro que si tu clase Fecha tiene que entender que 00004 puede ser un día válido no tiene sentido limitar la entrada de sscanf a 2 caracteres.

Código C++:
Ver original
  1. iCheck = sscanf(fecha, "%d/%d/%d", &iDia_, &iMes_, &iAno_);

Esta versión no te debería dar esos problemas.

Otra cosa es que esa fecha se tenga que interpretar como no válida... en cuyo caso lo que no tiene sentido es que devuelvas una excepción en el constructor de la clase Fecha. En este caso tendrías que tener un booleano interno en Fecha que indicase si la fecha almacenada es válida. Al realizar las comparaciones, si una fecha es válida y la otra no automáticamente ambas fechas van a ser diferentes. O eso o haces una sobrecarga del operador de comparación específica:

Código C++:
Ver original
  1. class Fecha
  2. {
  3.   // versión 1
  4.   bool operator!=(const char* fecha) const;
  5.  
  6.   // versión 2
  7.   friend bool operator!=(const Fecha& fecha1, const char* fecha2);
  8. };

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.