Ver Mensaje Individual
  #29 (permalink)  
Antiguo 14/03/2016, 20:41
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: headers, carpetas y menúes c++

Hola eferion y Instru, gracias por responder, con respecto a mi primo ni empezaron a programar en la utu porque recién empezaron las clases, y van a demorar bastante como para empezar a programar.
Por otro lado, estoy en que me rindo Instru hice lo que me dijiste, y hasta me puse a investigar lo de Null Object, y lo que he encontrado es con java, de c++ encontré más o menos esto:

http://stackoverflow.com/questions/2...sult-not-found

Lo malo es que casi todos te dicen el uso de punteros, además con tengo serios problemas con el update, con lo de null tuve que poner excepciones pero cuando ingreso un nombre que no es, termina la app:

ManPersonas.h

Código C++:
Ver original
  1. #include <list>
  2. #include <algorithm>
  3. #include "Persona.h"
  4. #include "Util.h"
  5. #ifndef MANPERSONAS_H
  6. #define MANPERSONAS_H
  7. using namespace std;    
  8.     std::list<Persona>lista;
  9.     static int maxIdP = 0;
  10.     int getMaxIdP(){
  11.         return ++maxIdP;
  12.     }
  13.     bool check(const Persona& p){
  14.         for(Persona per : lista){
  15.             if(per.nom == p.nom){
  16.                 return true;
  17.             }
  18.         }        
  19.         return false;        
  20.     }
  21.     Persona getRow(std::string xnom){
  22.         for(Persona p : lista){
  23.             if(p.nom == xnom){
  24.                 return p;
  25.             }
  26.         }
  27.         throw "no existe";
  28.     }
  29.     Persona getRow(int xid){
  30.         for(Persona p : lista){
  31.             if(p.id == xid){
  32.                 return p;
  33.             }
  34.         }
  35.         throw "no existe";
  36.     }
  37.     bool create(const Persona& p){
  38.         if(check(p)){            
  39.             return false;
  40.         }
  41.         else{
  42.             lista.push_back(p);
  43.             return true;
  44.         }
  45.     }
  46.     bool update(const Persona& p){
  47.         Persona per = getRow(p.id);
  48.         std::list<Persona>::iterator findIter = find(lista.begin(), lista.end(), p);
  49.         if(per.nom != p.nom){
  50.             if(check(p)){
  51.                 return false;
  52.             }
  53.         }
  54.         lista.remove(per);
  55.         lista.insert(findIter,p); //asi con el remove y insert me da este error: Segmentation fault; real time: 21s; user: 0ms; system: 4s
  56.         return true;
  57.     }
  58.     void deleted(const Persona& p){
  59.         lista.remove(p);        
  60.     }
  61.     std::list<Persona> read(){
  62.         return lista;        
  63.     }  
  64. #endif  /* MANPERSONAS_H */

Pero y: ¿ahora que?

espero sus respuestas y saludos