primero que para validar fecha, una forma seria algo asi:
Código C++:
Ver originalif ( dia>0 && dia<=31)
fecha.setday(dia);
if (mes>0 && mes<=12)
fecha.setmes(mes);
if (anyo>2000 && <= 2100)//100 años ya no estamos aqui ni tu ni yo XD
fecha.setanyo(anyo);
//Esta seria una correcta de validar.
//para obtener los datos seria:
cout << fecha.getdia() << " " << fecha.getmes() << " " << fecha.getanyo();
si metes eso en un bucle que compruebe si dia es ok, mes ok y anyo ok, algo como:
Código C++:
Ver originaldo
cin >> dia >> mes >> anyo;
if ( dia>0 && dia<=31)
fecha.setday(dia);
if (mes>0 && mes<=12)
fecha.setmes(mes);
if (anyo>2000 && <= 2100)//100 años ya no estamos aqui ni tu ni yo XD
fecha.setanyo(anyo);
//Esta seria una correcta de validar.
//para obtener los datos seria:
cout << fecha.getdia() << " " << fecha.getmes() << " " << fecha.getanyo();
// Repite una y otra vez mientras una de las condiciones sea falsa
// Pero si que guarda cualquier opcion valida que introduscas.
while ( dia == diafalso || mes == mesfalso || anyo == nyofalso)
otra cosa seria sufrir
Es una base que a lo mejor te puede servir.
Para implementar esta idea seria modificando algo tu classe