Código C++:
Ver originalNumero::Numero (const Cadena& numero) throw (Numero::Incorrecto) {
char* num_nuevo = new char [numero.longitud() + 1];
strcpy (num_nuevo
, numero.
c_str());
struct EsBlanco {
bool operator
() (char c
) const { return isspace(c
); } };
struct EsDigito : unary_function<char,bool> {
bool operator
() (char c
) const { return isdigit(c
); } };
EsDigito digito;
EsBlanco blanco;
char* final_nuevo
= remove_if
(num_nuevo
, num_nuevo
+ strlen(num_nuevo
), blanco
); *final_nuevo = '\0';
char* alfabetico = find_if (num_nuevo,final_nuevo,not1(digito));
if (*alfabetico != '\0')
throw(Incorrecto(DIGITOS));
if (strlen(num_nuevo
) < LongitudMinima
|| strlen(num_nuevo
) > LongitudMaxima
) throw(Incorrecto(LONGITUD));
if (!numeroValido(num_nuevo))
throw(Incorrecto(NO_VALIDO));
numero_ = num_nuevo;
}
Me sigue dando el mismo fallo