Digamos que ingresas una fecha dado por día, mes, año. El primer paso es validar la fecha comenzando por el día y el mes. Como sabrá cada mes tiene diferentes números de días entonces se haría algo así:
Código C++:
Ver originalif(1<=dias && dias<=NumeroDeDias(mes))
{
//Es valido, pero falta un detalle, verlo abajo. XD
}
else
{
cout<<"Fecha invalida"<<endl;
}
Ahora eso funciona bien siempre y cuando el mes no sea febrero y el día sea igual a 29, ya que en ese caso debes de validar el año para verificar si es bisiesto (Se dice que un año es bisiesto si es múltiplo de 4 excepto los múltiplos de 100 pero si los de 400). Con lo cual obtendrás una validación de la fecha ingresada.
Suerte y si requieres de más ayuda coloca tu código para ver los detalles y ayudarte.