Ver Mensaje Individual
  #30 (permalink)  
Antiguo 14/03/2016, 23:06
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: headers, carpetas y menúes c++

Se ve mucho mejor el código.

En el update hay varias cosas.

En C++11 en adelante, puedes usar auto como tipo de variable, siempre y cuando el valor que le asignes identifique claramente el tipo. En este caso te puedes beneficiar:

Código:
auto findIter = find(lista.begin(), lista.end(), p);
Ahora ten en cuenta que si p no esta en la lista, entonces finIter == lista.end().
No te parece que este código no tiene mucho sentido?
Código:
if(per.nom != p.nom){
            if(check(p)){
                return false;
            }
        }
Si nom no es igual, checamos que sea igual??????
Sospecho que te da error, por eso mismo. Al parecer estas intentando asignar algo en lista.end() la cual es una localidad invalida. Revisa esa parte.

Creo que lo de null object encontraste información que no es. Yo me refería al patron de diseño. En resumen es que tengas un campo o "algo" dentro de la clase o estructura Persona que identifique si el objeto es válido. Entonces en vez de regresar Null, o lanzar una excepción, regresas un objeto tipo Persona pero con el campo "valido" como falso. Aclaro, esto es un ejemplo.

Código:
return Persona(false);
Es sólo un ejemplo, debes mejorarlo.